1

在 gcc 4.6.3 中,使用 -lm 链接 math.lib 是一种不同的方式。

它用于工作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

4

1 回答 1

3

您说您尝试将其编译为:

gcc -lm mat.c

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

gcc mat.c -lm

这行得通吗?

于 2012-11-05T07:21:23.787 回答