运行 时缺少 Boost 库(可以编译。不能 运行)

Boost library missing at runtime (Can compile. Can't run)

这是一个入门级的问题,但我似乎找不到任何相关的答案。

我可以使用以下命令编译this没问题:

g++ client.cpp -o client -lboost_system -lpthread

当我尝试 运行 程序时出现以下错误:

./client 
./client: error while loading shared libraries: libboost_system.so.1.58.0: cannot open shared object file: No such file or directory

此文件存在:/usr/local/lib/libboost_system.so

我做错了什么?

应该是链接错误,

尝试编译它并先创建 .o 文件。

g++ -C .cpp // 这里你需要提到库中的包含。 -我

然后创建可执行文件,

g++ -O //这里需要提到库的路径。 -l

如果您的程序是正确的,它将创建 exe,否则它会向您显示错误。如果链接错误,请尝试在程序中正确包含 .h 和 lib 路径。

你必须设置找到共享对象的路径,命令LD_LIBRARY_PATH=共享对象所在的路径就可以了。我想文件在某个地方,否则 link 会失败。

我没有机会测试你的答案。升级到 ubuntu 15.04,同时解决另一个不相关的问题,该问题也恰好解决了这个问题。

谢谢。