库
是已经编译好并能被链接入程序的对象文件的集合
库
通常被存储在扩展名为.a
的特殊归档文件中,被称为静态库
。它们使用一个单独的工具,GNU的归档器ar
,从对象文件生成
编译器选项-lNAME
试图链接“标准库目录下”的文件名为libNAME.a中的对象文件,该选项很少使用
标准库目录
:不同的操作系统应该不同
默认的搜索路径
也可以包括其他依赖于系统或指定位置的目录,还有gcc在安装时的目录。在64位平台上,lib64目录也可以是默认被搜索的
怎么查询一个编译器的默认搜索目录呢?????
默认情况下,gcc在/usr/local/include/和/usr/include/
下搜索头文件(包含头文件
,前者优先)
默认情况下,gcc在/usr/local/lib/和/usr/lib/
下搜索库(链接库文件
,前者优先)
编译器选项-I和-L
用于把新目录添加到各自原来的include路径和库搜索路径的前面。效果是永久的?????
我们不应该在源代码中的#include语句中放入头文件的绝对路径,因为这会让该程序不能在其他系统上编译。影响可移植性
可以使用环境变量C_INCLUDE_PATH(针对C的头文件)