cannot open shared object file: No such file or directory

本文介绍了在编译C++程序时如何正确配置动态库路径,包括使用-L选项指定链接库位置、设置LD_LIBRARY_PATH环境变量的方法、修改.bashrc文件、通过ld.so.conf配置文件及使用-Wl,-rpath选项等四种途径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序编译时优先使用指定的库link,也就是L选项后面的地址,但是运行时,动态库还是从系统的位置找的!!
所以编译c++程序时虽然添加了-L选项但是运行时,还要在终端再使用

export LD_LIBRARY_PATH="/home/..../lib/":$LD_LIBRARY_PATH

或者
第二种在.bashrc文件中加上这一句,执行source ~/.bashrc立刻加载修改后的设置

或者
第三种。
1. 写一个xxx.conf文件,里面加上动态库的地址,然后将该文件放到/etc/ld.so.conf.d目录下;
2. 然后/etc/ld.so.conf文件中的include /etc/ld.so.conf.d/*.conf
会自动加上刚添加的地址去找动态库
3. 执行 ldconfig命令,重建/etc/ld.so.cache

或者
第四种,通过编译选项-Wl, -rpath指定动态搜索的路径
-Wl选项告诉编译器(compiler)将后面的参数传递给链接器(linker)。

参考:http://blog.chinaunix.net/uid-26456800-id-3327797.html
http://blog.youkuaiyun.com/apn172/article/details/8868968

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值