gcc 4.6.3中的libm链接问题

时间:2012-11-05 07:00:13

标签: c linux math gcc linker

使用-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

1 个答案:

答案 0 :(得分:3)

你说你试过把它编译为:

gcc -lm mat.c

gcc的某些配置需要严格的选项排序,这要求库在使用它们的源代码之后:

gcc mat.c -lm

这有用吗?