试图在项目中包含boost序列化

时间:2017-03-12 19:41:59

标签: c++ boost

我在makefile中添加了-lboost_serialization:

这是我在主要使用boost中包含的内容:

#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/binary_object.hpp>
#include <boost/archive/polymorphic_binary_iarchive.hpp>
#include <boost/archive/polymorphic_binary_oarchive.hpp>

当我编译时,我没有得到错误,但是当我运行程序时,我收到此错误消息:

"./Project: error while loading shared libraries: libboost_serialization.so.1.63.0: cannot open shared object file: No such file or directory"

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果发生这种情况,您很可能需要调整LD_LIBRARY_PATH。由于您需要加载共享库,并且它们位于某个不寻常的位置,您需要指定在执行程序时可以找到它们的位置。

我想在你的情况下,它们不能在/usr/lib文件夹中找到,但在其他地方,只需将此文件夹添加到提到的环境变量中,使用

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/some/new/path

然后开始你的程序。

路径/some/new/path是文件libboost_serialization.so所在的路径。

答案 1 :(得分:0)

当我尝试运行某些脚本并添加LD_LIBRARY_PATH不起作用时,我遇到了同样的问题...所以我只是将“.so”文件复制到/ usr / lib并且它运行良好。