0

我有一个用 C99 C 编写的简单 modbus 主项目。现在我正在编译我的应用程序(效果很好):

$ gcc -std=c99 -O2 -Wall -I/usr/include/modbus test.c -o test -L/usr/lib/modbus -L/usr/include/curl -lmodbus -lm -lcurl

我想写经典的 Makefile。我试试这个:

CFLAGS=-std=c99 -O2 -Wall -I/usr/include/modbus 
LDFLAGS=-L/usr/lib/modbus -L/usr/include/curl -lmodbus -lm -lcurl

test: test.o
    $(CC) $(LDFLAGS) test.o -o test
test.o: test.c
    $(CC) $(CFLAGS) -c test.c

clean:
    rm *.o test

但如果我运行make它会崩溃:

cc -L/usr/lib/modbus -L/usr/include/curl -lmodbus -lm -lcurl test.o -o test
test.o: In function `myFunction':
test.c:(.text+0x80): undefined reference to `log'

我哪里有错误?CFLAGS和之间有什么区别LDFLAGSCFLAGS是用于编译器LDFLAGS还是用于链接器?如何从我的第一个gcc命令中确定编译器的参数是什么,链接器的参数是什么?

4

0 回答 0