• Linux下指定so共享库的加载路径


    转载地址: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文件的内容在用户登录时就读取了.

  • 相关阅读:
    POJ 2636:Electrical Outlets
    POJ 2260:Error Correction
    POJ 2080:Calendar
    POJ 2017:Speed Limit
    POJ 1504:Adding Reversed Numbers
    POJ 1477:Box of Bricks
    POJ 1060:Modular multiplication of polynomials
    HDU 1379:DNA Sorting
    HDU 1009:FatMouse' Trade
    mysql修改初始密码
  • 原文地址:https://www.cnblogs.com/silentdoer/p/11748558.html
Copyright © 2020-2023  润新知