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

时间:2019-01-17 00:01:54

标签: c++ boost cygwin boost-asio

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

// 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

这是怎么了?

1 个答案:

答案 0 :(得分:1)

问题出在-std=c++11中,该问题限制了功能的范围。 不受任何限制,编译工作正常。

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