【发布时间】:2012-07-05 09:27:21
【问题描述】:
这是一个概述我的问题的最小示例
test.c:
#include <stdio.h>
#include <math.h>
main ()
{
fmod ( 3, 2 );
}
这是我要编译的命令test.c
gcc -lm test.c -o test
这是我发出上述命令时得到的输出
/tmp/ccQmRk99.o: In function `main':
test.c:(.text+0x3e): undefined reference to `fmod'
collect2: ld returned 1 exit status
如果我改用cc,我会得到相同的输出。我正在使用以下版本的 gcc
gcc-4.6.real (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
知道为什么我的程序无法编译吗?
【问题讨论】:
-
这段代码可以很好地编译并链接到 GCC 4.1.2 和 4.3.4...
-
@OliCharlesworth 我从字面上复制粘贴了所有内容,这显然对我不起作用
-
使用 gcc 4.4.3 也适用于我。尝试将 -lm 移动到命令末尾并检查 /usr/lib/libm.so 是否存在于您的机器上
-
哇,这是一个错误吗?在这种情况下,参数的顺序应该无关紧要……
-
@ckruse:在此处查看 cmets 的答案:stackoverflow.com/a/7824642/129570。
标签: c gcc linker static-libraries