2012-01-15 48 views
1

我建立一个Unix下C++程序调用升压缺失,但是当我尝试运行它,我得到固定升压共享库,在linux

error while loading shared libraries: libboost_filesystem.so.1.42.0: cannot open shared object file: No such file or directory. 

我没有用之前得到这个错误(即使我已经在打电话了),但我不知道是什么触发了这个变化。无论如何 - 在二进制文件上执行ldd,它确实表明库缺失。

我想解决方案是在LD_LIBRARY_PATH中添加一个链接到包含.so文件的库 - 但我找不到它。它应该在哪里?这是正确的解决方案吗? 请注意,我没有sudo privelages在我的电脑上,所以我只能更改用户设置 - 而且我是一个linux新手,所以请尝试解释简单...

回答

1

我认为问题在于你已经链接到一个非常具体的Boost版本(在这种情况下是1.42.0)。只要Boost存在于您的系统上的确切版本中,这种方式就可以工作,但只要升级到更新版本的Boost,就不能再找到链接的库。

您可能想要调整Makefile以链接到更通用的版本libboost_filesystem.so