[英]Error when including boost.asio on Cygwin 64
我正在尝试使用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_SERVICE
, getaddrinfo
或host_name
类的符号。 完整的错误日志可以在这里找到: https : //pastebin.com/RwpX3bx3
在这里的问题中 ,建议我在命令行中添加-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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.