GCC链接器问题与-lm标志

时间:2011-02-11 01:37:20

标签: c gcc linker makefile

我遇到了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

我可能会忽略一些愚蠢的东西,但在制作文件方面,我绝对不是专家。

2 个答案:

答案 0 :(得分:5)

此外,库规范必须在引用它们的对象之后(参见Linker flags in wrong place)。

答案 1 :(得分:4)

-lm是一个链接器标志,因此您应该将其添加到上面的链接规则中(即,您将其添加到错误的规则中)。