是否可以从gcc中的C源代码内部链接到数学库?

时间:2010-05-17 10:22:19

标签: c gcc include unix

当我尝试包含<math.h>时,我发现需要使用命令gcc -lm链接数学库

但我正在寻找另一种方法来链接数学库'代码',这不需要用户使用任何选项进行编译..

可以使用gcc -lm或其他内容在C代码中完成#pragma吗?

编辑:我已将-ml更改为-lm

6 个答案:

答案 0 :(得分:11)

简化用户(或实际上是开发人员)的复杂性的通常方法是编写一个makefile。

答案 1 :(得分:5)

首先,它是gcc -lm并且没有#pragma意味着提供链接指令

答案 2 :(得分:4)

不,您需要告诉链接器链接库以链接库。

链接器不知道代码,只知道编译的目标文件。它不会看到语言特定的编译指示。

答案 3 :(得分:4)

你没有说你正在使用哪个UNIX shell,但如果这只是为了方便,只需编写一个shell函数:

gcm() {
  gcc -lm $*
}

将它放在shell的启动文件中,您可以使用以下代码编译和链接数学库:

gcm mycode.c

答案 4 :(得分:3)

使用-lm是唯一的选择。此外,使用#pragma就是微软特定而且非常脏。想象一下,有一个新的超高效数学库需要-lsupermath而不是-lm - 那么你必须修改代码而不是修改makefile或make config文件。

答案 5 :(得分:2)

不,gcc没有用于链接到库的编译指示。您必须使用命令行选项链接到数学库(它是-lm而不是-ml