转载地址:https://blog.csdn.net/zorelemn/article/details/52596293,做了部分修改
一、库文件的搜索路径:
1、在配置文件/etc/ld.so.conf中指定动态库搜索路径(需要添加其它库文件的路径,在文件的最后添加具体的路径即可 [ 如:/usr/local/lib ],添加后保存退出,然后在命令行ldconfig
2、通过环境变量LD_LIBRARY_PATH指定动态库搜索路径(当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号":"分隔)
3、在编译目标代码时指定该程序的动态库搜索路径(还可以在编译目标代码时指定程序的动态库搜索路径。 这是通过gcc 的参数"-Wl,-rpath,"指定,当指定多个动态库搜索路径时,路径之间用冒号":"分隔,如:-Wl,-rpath=./表示搜索程序所在目录,注意程序加载某个库的名称是写进了二进制的,如libxxx.so.3,然后Linux看到这个先从./里找看有没有,如果编译时没有指定rpath,
据说还可以通过工具对已编译的程序或库修改它们的rpath:patchelf --set-rpath /opt/my-libs/lib:/foo/lib:./ program)
4、默认的动态库搜索路径/lib
5、默认的动态库搜索路径/usr/lib
搜索的先后顺序是:
1.编译目标代码时指定的动态库搜索路径;
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib;
5.默认的动态库搜索路径/usr/lib。
二、Shell可执行程序命令文件搜索路径:
1.查看所有的搜索路径:echo $PATH
2.添加新的路径:
1)只对当前shell窗口有效:
export PATH=$PATH:/new path
2)对所有窗口有效:
修改当前用户的.bash_profile文件,在PATH=$PATH……后添加":/new path";
保存退出后,需要在当前窗口中执行". .bash_profile",更新配置,之后用echo $PATH显示更新后的路径,可以看到新加入的路径;
注意:在重新登录前所有新打开的shell窗口要用到新的路径都需要执行". .bash_profile",更新配置,因为.bash_profile文件的内容在用户登录时就读取了.