C create Makefile:如何设置CFLAGS和LDFLAGS

时间:2014-11-28 23:39:21

标签: c compilation makefile linker ldflags

我有一个用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'

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

0 个答案:

没有答案