静态库文件搜索顺序:
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中进行变量的修改与添加。