我在Eclipse中工作:Helios Service Release 1使用Eclipse CDT编译使用g ++
我刚刚开始在我的项目中使用共享库,但遇到了一个小问题。我有三个项目A,B和C. A和B都是共享库,C是可执行文件。
在eclipse下我设法从C和C编译引用A和B并正确运行但是当我尝试在Eclipse之外手动运行生成的C程序时,我得到以下错误:
加载共享库时出现错误:libA.so:无法打开共享对象文件:没有这样的文件或目录“
我已经尝试将A.so B.so和C移动到同一个文件夹中并运行C但是我得到了同样的错误。
我可以让Eclipse构建我的项目,同时将所有文件放在同一个地方,当我将它们移动到新位置时它们仍然可以运行吗?
答案 0 :(得分:7)
以root身份运行ldconfig
以更新缓存 - 如果仍然没有帮助,则需要添加文件ld.so.conf
的路径(只需在自己的行中输入)或更好然后,将条目添加到目录ld.so.conf.d
中的新文件(更容易删除)。
答案 1 :(得分:2)
您只需将LD_LIBRARY_PATH
设置为包含共享库所在的文件夹即可。
这样的事情:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/lib/