运行 时缺少 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,同时解决另一个不相关的问题,该问题也恰好解决了这个问题。
谢谢。
这是一个入门级的问题,但我似乎找不到任何相关的答案。
我可以使用以下命令编译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,同时解决另一个不相关的问题,该问题也恰好解决了这个问题。
谢谢。