c++ - 在 Cygwin 64 上包含 boost.asio 时出错

标签 c++ boost cygwin boost-asio

我正在尝试在我的 C++ 项目中使用 boost.asio,使用 Cygwin 64 位。然而,即使是像这样简单的程序:

// compiled by: g++ -g -std=c++11 -D_XOPEN_SOURCE=500 -c -o build/server.o src/server.cpp

#include <boost/asio.hpp>

int main(int argc, const char** argv) {
    return 0;
}

导致大量错误消息。 GCC 提示它找不到像 EAI_SERVICEgetaddrinfohost_name 这样的符号。完整的错误日志可以在这里找到:https://pastebin.com/RwpX3bx3

this question here ,建议我在命令行添加-D_XOPEN_SOURCE=500。但是,如您所见,我使用 -D_XOPEN_SOURCE=500 编译它,但它不起作用。我还尝试通过 Cygwin 安装程序卸载并重新安装 libboost-devel,但这也没有用。

(编辑:不,如果没有 -D_XOPEN_SOURCE=500,它也不起作用。没有它,你会得到这个:https://pastebin.com/AExBa2pL)

这里出了什么问题?

最佳答案

问题出在限制函数范围的 -std=c++11 中。 没有任何限制,编译工作正常。

$ g++ -c server.cpp -o server.o
$ ls -s server.o
164 server.o

关于c++ - 在 Cygwin 64 上包含 boost.asio 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54227192/

相关文章:

c++ - 如果 basic_waitable_timer 在仍有异步操作等待时被破坏怎么办?

c++ - boost hana index_if 和 type

c++ - 无法使用 boost::geometry::model::polygon

用于计算 LOC 的 BASH 脚本

使用 -O2 与 -O1 时,Cygwin64 gcc C/汇编程序崩溃

cygwin - 在 cygwin 中找不到 libtoolize 命令

c++ - Qt - 关于头文件的一些问题

c++ - GCC 程序不捕获异常

C++ 11可变数量的参数,相同的特定类型

c++ - async_read_until 的 Lambda 不初始化长度参数