当我尝试包含<math.h>
时,我发现需要使用命令gcc -lm
链接数学库
但我正在寻找另一种方法来链接数学库'代码',这不需要用户使用任何选项进行编译..
可以使用gcc -lm
或其他内容在C代码中完成#pragma
吗?
编辑:我已将-ml
更改为-lm
答案 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
)