如何添加自己编译的库文件目录和头文件目录

时间:2021-11-02 12:41:26

静态库文件搜索顺序:

1.gcc会去找-L 
2.gcc的环境变量LIBRARY_PATH 
3.默认目录 /lib /usr/lib /usr/local/lib 这是当初compile gcc时写在程序内的 

动态库文件搜索顺序:

1.编译目标代码时指定的动态库搜索路径; 
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径; 
3.配置文件/etc/ld.so.conf中指定的动态库搜索路径; 
4.默认的动态库搜索路径/lib; 
5.默认的动态库搜索路径/usr/lib。 

注意如果修改了/etc/ld.so.conf,需要运行/sbin/ldconfig更新/etc/ld.so.cache,否则仍然无法找到库文件路径。

头文件搜索顺序:

1.header file的搜寻会从-I开始 
2.gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH 
3.默认目录: 
/usr/include 
/usr/local/include 
/usr/lib/gcc-lib/i386-linux/2.95.2/include 
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3 
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include 


当进行交叉编译时,添加环境变量LD_LIBRARY_PATH、LIBRARY_PATH的方法不见得有效,这时只能考虑在Makefile中进行变量的修改与添加。