Linux下编译文件显示未找到动态库(“No such file or directory”)解决方法
我们编译程序的时候有时会加上各种链接库的命令,比如-lpthread
等等,或者是我们自己创建的动态库,当动态库路径错误的时候会显示”No such file or directory
“,下面提供三种坚决办法:
1、找到xxxx.so放到 /usr/lib
– 不推荐
当安装的.so太多找不到可以使用以下方法
sudo find /usr/local -name "xxxx.so"
2、将xxx.so放到环境变量中
步骤一:LD_LIBRARY_PATH
export LD_LIBRARY_PATH=xxxx //将该命令放在下面的哪一个文件中都可以
~/.bashrc
——用户级别/etc/profile
——系统级别
步骤二:使用命令重新加载
. ~/.bashrc
. /etc/profile
.
在这里不是当前路径的意思,在这里是一个命令,等价于 source
3、修改/etc/ld.so.conf
- 动态库绝对路径添加到该文件中
sudo ldconfig -v
//-v参数用于显示信息,没别的用