linux 程序运行时,提示找不到 xx.so.x,如何查询linux程序需要哪些库,linux链接库的添加方法
发表于: 2018-08-06 09:14:10 | 已被阅读: 21 | 分类于: Linux笔记
问题原因查找
今天打算再linux中运行 test.out 程序时,提示
# ./test.out
./test.out: can't load library 'libfreetype.so.6'
出现这种提示有两种可能,一是确实没有这个库,再就是有这个库,但是运行程序时,系统不知道去哪里找这个库。于是,执行
# ldd test.out
...
libfreetype.so => /usr/local/lib/libfreetype.so(0x00007f767af0a000)
...
也在预料中,很多库都会在这个目录里。
解决问题
可以将该路径加入环境变量:
export PATH=/usr/local/lib:$PATH
再次运行,依然报同样的错误。稍稍思考一下,知道应该将该路径加入
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
再次运行,发现 test.out 程序正常运行了。
将环境变量加入 bashrc
之所以进行这一步,是因为
sudo vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH # 在文件最后加入
source ~/.bashrc
搞定。