我遇到了GCC链接器的问题,特别是使用-lm
标志,因为我正在使用math.h中的一些函数。我收到以下错误:
main.c :(。text + 0x8e5):undefined 参考`floor'
main.c :(。text + 0x901):undefined 参考`ceil'
这是我的makefile的相关部分:
myprogram: main.o
gcc -Wall -pedantic -o myprogram main.o
main.o: main.c foo.h bar.h
gcc -Wall -pedantic -lm main.c
我可能会忽略一些愚蠢的东西,但在制作文件方面,我绝对不是专家。
答案 0 :(得分:5)
此外,库规范必须在引用它们的对象之后(参见Linker flags in wrong place)。
答案 1 :(得分:4)
-lm是一个链接器标志,因此您应该将其添加到上面的链接规则中(即,您将其添加到错误的规则中)。