gcc库文件和头文件搜索路径

来源:互联网 发布:淘宝童装小模特多少钱 编辑:程序博客网 时间:2024/05/08 03:51

一、compile-time库文件搜索路径

1.如果编译时指定了-L选项,就优先到-L指定的路径去查找库进行连接;
2.查找GCC的环境变量LIBRARY_PATH
3.到/bin /usr/lib /usr/local/lib去查找。这几个搜索路径在gcc下是默认的。
所以当我们要让自己添加的库文件让gcc能搜索到,有两种方法,一种就是用-L指定,一种就是将库复制到以上几个gcc默认搜索路径。



二、run-time库搜索路径

1.编译时用-Wl, -rpath指定的路径
2.环境变量LD_LIBRARY_PATH指定的路径
3./etc/ld.so.conf指定的路径
4.默认的动态搜索库路径/lib /usr/lib



三、几个重要的命令

1)ldd bin_name
可以查看编译出来的可执行文件依赖的库。部署程序时,我们要把这些库拷贝出来,然后将这些库连同可执行文件拷贝到新的机器上,在/etc/ld.so.conf.d下添加对应的库文件搜索路径即可。


2.ldconfig命令
搜索/lib和/usr/lib以及/etc/ld.so.conf下列出来的所有路径的库,然后创建动态库的cache文件。当程序需要搜索库时就会搜索ld.so.cache里列出来的库。

所以当我们向系统添加新的库文件时,除了需要把库文件烤到/usr/local/lib等指定位置外,还需ldconfig一下来更新cache文件。


四、gcc头文件的搜索路径

1.优先搜索-I指定的路径
2.查找GCC的环境变量C_INCLUDE_PATH/CPLUS_INCLUDE_PATH/OBJC_INCLUDE_PATH指定的路径
3.查找默认的搜索路径/usr/include /usr/local/include



所有GCC的环境变量,我们都可以GCC的原有搜索路径上上面添加进我们自己的路径,例如


#增加.so搜索路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/liheyuan/soft/lib
 
#增加.a搜索路径
LIBRARY_PATH=$LIBRARY_PATH:/home/liheyuan/soft/lib
 
#增加bin搜索路径
export PATH=$PATH:/home/liheyuan/soft/bin
 
#增加GCC的include文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/home/liheyuan/soft/include


-wall -pedantic

-wall编译时显示所有的警告信息,可以增加程序的健壮性和可移植性

-pedantic,以符合ANSI/ISO C 标准列出所有警告

0 0
原创粉丝点击