【发布时间】:2016-04-11 23:43:19
【问题描述】:
假设这是我的程序:
#include <math.h>
#include <stdio.h>
int main(void) {
double a = sqrt(20);
return 0;
}
当我们使用数学函数时,我们必须包含头文件“math.h”。
但是在使用gcc 编译时,我们还必须指定程序使用的共享库(在本例中是数学库)。为此,我们使用选项-lm。
添加以使用共享库的选项并不总是很清楚(我知道它以-l 开头,这意味着lib,但我没有任何简单的想法来获取-l 之后的字母,但在 google 上搜索除外)。
我的问题是:有没有一种简单的方法可以使用我包含的标头来获得与 gcc 一起使用的正确选项??
【问题讨论】:
-
习惯上将静态库命名为
libXXX.a。当您链接它时,lib和.a部分是预期的,因此您只需使用-lXXX作为选项。 -
我知道那个兄弟。我正在寻找一种简单的方法来找出 XXX。
-
可能是
man页面。不知道有什么简单的方法。 -
基本上没有。有些(
-lm、-lc需要)是传统的,但不是标准化的。其他的,您只需要查阅相应的文档即可。 -
@Sidahmed 对于标准功能,手册页就足够了,对于 sqrt,请参阅 linux.die.net/man/3/sqrt,它明确指出使用 -lm 链接。
标签: c linux gcc shared-libraries