可能重复:
为什么必须在 C 中链接数学库?
我正在使用 GCC 编译器(在 Linux 上)学习 C。
我最近从 using Code::Blocks 转移到 using Geany
,我注意到它Geany
不会自动链接到任何所需的库。例如,当我#include <math.h>
在 Code::Blocks 中使用时,它会在我编译时自动链接到相应的数学库中。但是,Geany
不这样做,我必须手动添加构建命令,例如-lm
数学库,以使编译工作。
但是,我注意到包含string.h
标头并使用其中的函数可以很好地编译,而无需在字符串库中进行链接。这是为什么?是string.h
标题本身定义了所有功能吗?有人可以解释为什么有些图书馆似乎需要链接,而另一些则不需要。
类似地,有没有人有经验告诉Geany
自动链接所需的库?这将使编译变得容易得多。