让程序在指定路径寻找库文件 + 库文件搜索顺序

  • 安装到系统对应目录:/usr/lib /usr/local/lib,可以使用ldconfig配置,需要root权限
  • LD_LIBRARY_PATH
  • rpath 在g++中添加-Wl,--rpath -Wl,/a/b/c,即可传给ld阶段,如果用autoconf,libtool只会自动添加一个路径(库文件生成路径),可按上述方式添加额外路径.
    •   该方法需要库文件在固定位置,灵活性不好
  • RUNPATH

GNU加载器,库文件搜索顺序

  1. 如果没有run_path,首先看rpath
  2. LD_LIBRARY_PATH( setuid/setgid程序跳过该阶段)
  3. run_path( setuid/setgid程序跳过该阶段)
  4. /etc/ld/so/cache中查找(可以使用-z nodeflib连接选项取消)
  5. 默认目录/lib /usr/lib(可以使用-z nodeflib连接选项取消)

参考: http://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html

posted @ 2013-07-05 19:45  D3猎人  阅读(310)  评论(0编辑  收藏  举报