我正在尝试在我的 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_SERVICE
、getaddrinfo
或 host_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/