我是C ++的新手,我正在学习C90作为该语言的预先介绍。我注意到当我包含一个外部头文件(例如OpenGL头文件)时,我还需要包含包含导出的二进制库文件。
包含在C标准库中的任何内容会自动添加到我的项目中,但我可以包含sys/socket.h
,而无需显式定义任何额外的库位置!
默认情况下,sys/*.h
头文件是否都包含在Unix上的标准库中,或者我遗漏了什么?
链接器是否必须扫描您包含的所有库,直到找到具有正确定义的库?
答案 0 :(得分:2)
C POSIX库是C标准库的超集。打开它后,看起来sys/*.h
文件的函数定义都在那里,即使它们不是原始C标准的显式组件。
实际的函数定义包含在Unix的标准库中。
还发现了这个有趣的读物:Difference between C standard library and C POSIX library