一、linux下调用动态库.so文件时提示:

cannot open shared object file: No such file or directory

解决办法:

 1、此时ldd xxx查看依赖缺少哪些库

	libmysqlcppconn.so.7 => not found
	libboost_system.so.1.64.0 => not found

 2、设置变量 LD_LIBRARY_PATH

sudo gedit ~/.bashrc

 最后一行加上:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/path

重新打开bash,再ldd,就可以找到库路径了。

二、(推荐)修改共享库配置文件/etc/ld.so.conf

java导入动态库system.load("xxx")时也会出现cannot open shared object file: No such file or directory,此时修改LD_LIBRARY_PATH还是会报错,可以修改/etc/ld.so.conf

1、设置:

sudo gedit /etc/ld.so.conf

2、添加库路径:

include /etc/ld.so.conf.d/*.conf
/home/xxx/Documents/core/Linux/Test/src/Test

保存退出;

3、使配置立即生效

sudo ldconfig

end

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐