【发布时间】:2015-10-22 13:52:02
【问题描述】:
我在尝试运行 boost 库源附带的 HTTP 服务器示例时遇到错误,路径为:boost_1_59_0/libs/asio/example/cpp11/http/server/。
我已经在boost_1_59_0 目录中运行了以下命令:
$ ./bootstrap.sh$ sudo ./bjam install$ sudo ./b2 install
安装所有目标后,我尝试使用以下命令编译 main.cpp 和 server.cpp:g++ -std=c++0x -o main main.cpp -I "/home/user/Desktop/boost_1_59_0" -L "/home/user/Desktop/boost_1_59_0/libs/" -lboost_system。
有关如何编译此服务器示例的任何建议?
按照@Richard Hodges 的建议,我在 main.cpp 之后链接了 boost_1_59_0/libs/asio/example/cpp11/http/server/ 文件夹中的所有文件。它仍然没有工作,我得到了关于 lpthread 的错误,所以我将它添加到编译选项中。程序编译但执行失败,返回一个错误,指出它没有找到库 libboost_system.so.1.59.0。我尝试使用-L /path/to/library 链接文件夹,但没有成功。
解决方案:
我的编译命令:
g++ -std=gnu++0x -o main main.cpp server.cpp connection.cpp connection_manager.cpp reply.cpp mime_types.cpp request_handler.cpp request_parser.cpp -I "/home/user/Desktop/boost_1_59_0" -lboost_system -lpthread
我用这个命令解决了它:
$ LD_LIBRARY_PATH="/usr/local/lib/"$ sudo ldconfig
然后我只运行了可执行文件,它就成功了!
【问题讨论】:
-
你用什么命令行来编译这个例子?你还记得
-lboost-system吗?你得到了什么错误输出? -
我使用了这个命令:
g++ -std=c++0x -o main main.cpp -I "/home/user/Desktop/boost_1_59_0" -L "/home/user/Desktop/boost_1_59_0/libs/" -lboost_system。我有一个关于undefined reference tohttp::server::server::run()`的错误` -
您需要在命令行中提及所有其他 .cpp 文件。他们就在 main.cpp 之后去
-
感谢理查德的帮助!
标签: c++ linux http boost boost-asio