【发布时间】:2021-03-05 23:21:34
【问题描述】:
我现在正在将在寡妇上运行的代码移至 linux。很多部分都在使用标准库,但仍然有一些我必须删除的编译错误。现在,错误来自这一行
printf("[err] getaddrinfo: %s[%d] (%s, %d)\n", gai_strerrorA(ret), ret, server_addr, port);
错误信息如下。
g++ -Iinclude/ -Isource/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -std=c++11 -lm -lpthread -lrt -mavx -c source/sSocket2.cpp -o obj/sSocket2.o source/sSocket2.cpp:在成员 函数 bool sj::cSocket2::ConnectUDP(const char*, int, int, 整数,整数):
source/sSocket2.cpp:125:68: 错误:gai_strerrorA 未在 这个范围 printf("[err] getaddrinfo: %s[%d] (%s, %d)\n", gai_strerrorA(ret), ret, server_addr, port);
当我查找 gai_strerrorA (https://linux.die.net/man/3/gai_strerror) 时,它需要 #include
【问题讨论】:
-
您链接到的手册页提到了
gai_strerror,但没有提到gai_strerrorA。 Windows 中有一个gai_strerrorA函数,它是标准gai_strerror函数的Windows 特定扩展。 -
@Someprogrammerdude 啊,就是这样。我是多么愚蠢.. :) 谢谢!
-
@Someprogrammerdude 我将 gai_strerrorA 更改为 gai_strerror,现在它消失了。 (如果您将评论作为答案,我会选择它)
标签: c++ linux sockets compiler-errors g++