我有一个使用 Asio 无升压版本的跨平台项目。在 OSX 上,我使用 autotools 构建库,然后将其包含在我的项目中:
exec_program(COMMAND "./autogen.sh" WORKING_DIRECTORY ${asio_SOURCE_DIR}/asio)
exec_program(COMMAND "./configure --without-boost" WORKING_DIRECTORY ${asio_SOURCE_DIR}/asio)
我找不到适用于 Windows 的说明,并且在运行 CMake 时注意到 Asio 会生成一个 Visual Studio 文件,因此我将上面的说明设置为仅在 Unix 平台上运行。
但现在我在 Windows 上遇到奇怪的错误:
asio\include\generic\basic_endpoint.hpp(71): error c2039: 'protocol' is not a member of 'std::basic_string<chr, std::char_traits<<char>, std::allocation<char>>'
我也有一个实例asio::local::stream_protocol::endpoint
,我必须更改为asio::generic::stream_protocol::endpoint
.
所有这些代码都在 OSX 上编译并运行得非常好。
知道发生了什么吗?