C++动态链接库运行时找不到怎么办

C++在编译时,可以指定动态库的路径,但是运行的时候,

或者从一台机器拷到另一台的时候,它需要从系统的配置目录中寻找对应的动态库,

有可能系统的默认的目录只是/usr/lib64/,但是你的放在/usr/local/lib中,

比如有个libease.so放在了/usr/local/lib中,用ldd查看

ldd a.out 
	linux-vdso.so.1 =>  (0x00007fffebdff000)
	libease.so => not found
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f99640ae000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9963e2b000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9963c15000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f996388b000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f99643cb000)

 这时候需要在/etc/ld.so.conf.d/中配置,

vim /etc/ld.so.conf.d/libease.conf 写入

/usr/local/lib

使用命令ldconfig使之生效就可以看到:

libease.so => /usr/local/lib/libease.so (0x00007fb7695e8000)

 

也可以把/usr/local/lib/加入系统默认寻找路径

编辑/etc/ld.so.conf

include /etc/ld.so.conf.d/*.conf                                                
include /usr/local/lib                                                          
include .  

 也要ldconfig一下。。

 

还有一个办法就是设置LD_LIBRARY_PATH环境变量。

 

export LD_LIBRARY_PATH=/path/to/lib

可以暂时可用

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值