使用-lm的math.lib链接在gcc 4.6.3中是一种不同的方式。
用于 gcc -lm file.c ,但在 gcc 4.6.3 中 gcc file.c -lm 。
这种变化的原因是什么?或者这是一个错误?
由于
这是代码的一部分。
float i = 100;
printf("%f", sqrt(i));
return 0;
我遵照这个
gcc -lm mat.c
/tmp/ccPxTEjS.o:在函数`main'中:
mat.c :(。text + 0x2c):对'sqrt'的未定义引用
collect2:ld返回1退出状态
操作系统:Ubuntu 12.04
答案 0 :(得分:3)
你说你试过把它编译为:
gcc -lm mat.c
gcc的某些配置需要严格的选项排序,这要求库在使用它们的源代码之后:
gcc mat.c -lm
这有用吗?