2010-05-17 58 views
9

当我试图包括<math.h>我发现我需要使用命令gcc -lm是否可以从gcc中的C源代码内部链接到数学库?

到数学函数库的链接,但我正在寻找另一种方式为“代码”的数学库,不需要用户进行编译链接使用任何选项..

可以gcc -lm使用#pragma什么的C代码?

编辑:我已经改变了-ml-lm

回答

11

为用户(或实际上为开发人员)简化并发症的常用方法是编写一个makefile。

+6

但是我看不出它是如何回答关于编译指示的问题;) – 2010-05-17 15:05:21

5

首先,它是gcc -lm没有没有#pragma为了给连接指令

4

不,你需要告诉链接程序库中,以便链接链接图书馆。

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

2

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

3

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

4

你不说哪个UNIX外壳使用的是的,但如果这仅仅是为了方便地使用,简单的写一个shell函数:

gcm() { 
    gcc -lm $* 
} 

假如把它放在你的shell启动文件,你可以编译和链接与数学库:

gcm mycode.c 
+3

我怀疑这在一般情况下是有用 – 2010-05-17 11:33:21