我最近上了一门使用 pthreads 的类(class),在编译时我们被告知添加 -lpthread
。但是使用其他#include <>
时怎么会这样呢?系统头文件的语句,似乎对象实现代码的链接是自动发生的?例如,如果我只想获取头文件#include <stdio.h>
,我不需要 -l
编译中的选项,.o
的链接实现文件文件就这样发生了。
最佳答案
对于这个文件
#include <stdio.h>
int main() {
return 0;
}
运行
gcc -v -o simple simple.c
您将看到 gcc 实际上做了什么。你会看到它在你背后与图书馆链接。这就是为什么您不明确指定系统库的原因。
关于c - 为什么有些系统库需要 -l 选项,而另一些则不需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51866433/