繁体   English   中英

用于网络的 Boost asio 库(http 客户端)

[英]Boost asio library for networking (http client)

我正在尝试使用 Visual Studio 2015 用 C++ 编译一个实用程序,它需要Boost asio库来进行网络连接(http 请求)。 相同的解决方案包括一个项目来构建这个 Boost asio 库,但我必须下载 boost_1_59_0.7z 文件。 到目前为止,我可以下载它,并建立很好,但我发现像11个库具有不同名称(libboost_计时-vc140-MT-SGD-1_59.lib,以及10以上,但与DATE_TIME,文件系统日志产生的构建-设置等...)。 另一方面,需要这个库的项目正在寻找一个名为 boost_1_59_0.lib 的库,所以我的问题是我如何知道哪个生成的库适合用于网络(我没有看到任何名称与 asio 或网络相关...)。 我将不胜感激。

谢谢格斯

Boost.Asio 文档

默认情况下,Boost.Asio 是一个只有头文件的库。 但是,一些开发人员可能更喜欢使用单独编译的源代码来构建 Boost.Asio。 为此,请将#include <boost/asio/impl/src.hpp>到程序中的一个(且仅一个)源文件中,然后使用在项目/编译器设置中定义的BOOST_ASIO_SEPARATE_COMPILATION构建程序。 或者,可以定义BOOST_ASIO_DYN_LINK来构建单独编译的 Boost.Asio 作为共享库的一部分。

因此,默认情况下 Asio 是仅头文件,并且对于大多数用途不需要链接任何 Boost 库。

但是,boost Asio 确实依赖于其他 boost 组件,比如 Boost.System、Boost.Thread(not nessesary) 等,以支持更好的异步操作和一些错误代码(boost::system::error_code 和 boost::system::system_error) .

请参阅此处此处了解更多信息。

boost asio一个只有头文件的库,但是asio网络依赖于错误消息的boost system ,它不是一个只有头文件的库。 简而言之,您的代码需要链接到boost-system并且它可能还需要用于asio计时器的boost-chrono

注意: boost支持Visual Studio autolinking 所以你只需要将boost库目录的路径添加到Library Directories配置属性中,例如:

$BOOST_ROOT\stage\lib

其中$BOOST_ROOT是您安装boost的目录。

您不需要将boost-systemboost-chronoLinker->Input->Additional Dependencies 但是,您可能需要添加Windows网络库,例如: wsock32ws2_32

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM