日期:2014-05-16  浏览次数:20568 次

linux动态库调用的问题求解
现有一个QT的工程文件 ,已顺利编译成功 ,但在运行可执行程序时报错说:
error while loading shared libraries: libortp.so.8: cannot open shared object file: No such file or directory
我在/usr/local/lib文件夹下找到了对应的 libortp.so.8文件,同时还有 libortp.so.8.0.0文件  
查看 libortp.so.8的属性发现其有Link target选项,且其值为: libortp.so.8.0.0  
而 libortp.so.8.0.0文件本身没有Link target选项  
请问是不是因为libortp.so.8链接到了 libortp.so.8.0.0导致找不到目标库文件?
后来我将libortp.so.8通过复制粘贴操作去掉了其Link target 选项并放在了/usr/local/lib下 但是在执行程序时还是会报同样的错误  
 不知道该怎么办了 望大家指点迷津!

------解决方案--------------------
load时入参没有写完整路径? “/usr/local/lib/libortp.so.8”
------解决方案--------------------
如何改动的?cp libortp.so.8.0.0 libortp.so.8
这样子吗?

改动完了过后,注意ldconfig一遍。
------解决方案--------------------
1)修改文件
vim ~/.bash_profile
2)增加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:newpath