据我所知,如果我想在linux环境中使用pthread库,我必须包含pthread.h并使用-lpthread选项编译源代码.但我不明白为什么我应该使用-lpthread选项进行编译.我认为该选项是多余的...因为我已经声明包含pthread.h头文件,以便gcc链接pthread库.为什么gcc没有通过阅读#include自动链接pthread库文件?
提前致谢.
Alo*_*ave 19
以及连接和汇编是两个独立的阶段.
您包含标头,pthread.h以便编译器了解您在源文件中使用但在pthread库头文件中定义/声明的数据类型和符号名称.
您链接到pthread libray -lpthread使链接器可以在链接阶段实际在pthread库中找到这些符号.
有#include <pthread.h>在你的代码库没有链接; 它仅包含用于编译的标头。这使编译器可以查看包含的各种结构,函数声明等。有-lpthread实际上导致链接器进行链接。因此,include告诉编译器可用的内容,并且-lpthread实际上允许程序在运行时调用库中的函数。
| 归档时间: |
|
| 查看次数: |
30493 次 |
| 最近记录: |