【问题标题】:Strange errors on Windows with Asio使用 Asio 在 Windows 上出现的奇怪错误
【发布时间】:2017-07-31 18:21:20
【问题描述】:

我有一个使用 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 上编译并运行良好。

知道发生了什么吗?

【问题讨论】:

  • 请创建一个 MCVE stackoverflow.com/help/mcve
  • 在 Linux 上尝试-pedantic 标志。这将使其严格遵守 C++ 标准,您会发现问题是否只是因为 gcc 的容忍度。
  • @TheQuantumPhysicist 我已经在 OSX 上有了这个标志。 GCC4.8 编译代码也没有问题。

标签: c++ windows macos c++11 asio


【解决方案1】:

是的,这是一个愚蠢的。我在不存在 Unix 套接字的 Windows 上编译。

哎呀。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 2013-05-05
    • 2012-10-05
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多