Linux 自定义动态链接库目录

在Linux 中,动态库的搜索路径除了默认的搜索路径外(/lib和/usr/lib),可通过三种方法指定:

方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径

修改 /etc/ld.so.conf 文件。
其文件内容为:
[root@]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
所以,可以在文件夹/etc/ld.so.conf.d/中添加自己的文件,例如:创建文件xw.conf,
然后在文件中添加动态库路径,例如:
/root/code/opencv/build/lib
注意,保存退出之后需要执行命令ldconfig刷新当前缓存。

方法二:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径

export LD_LIBRARY_PATH=/root/code/opencv/build/lib
通过设置环境变量,只对当前shell有效,关闭shell或者退出当前用户则环境变量配置及无效了。

方法三:在编译目标代码时指定该程序的动态库搜索路径

通过gcc参数指定
-Wl,-rpath=${LD_PATH}
g++ ${RPATH} ./opencv-bak.cpp -o bak


总结:

往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig

如果往上面两个目录以外加动态库时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig。

如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。用export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。这只是一种临时的解决方案,在没有权限或临时需要的时候使用。

ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。

总之,做了library的变动后,最好都ldconfig一下(更新动态缓存库)

ldconfig -p 命令可以查看每个动态库的路径

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴国进

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值