I included necessary header file but get "error: gai_strerrorA was not declared in this scope", ubuntu16.04, g++ 5.5

I included necessary header file but get "error: gai_strerrorA was not declared in this scope", ubuntu16.04, g++ 5.5

我正在将在寡妇上运行的代码移动到 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: In member function bool sj::cSocket2::ConnectUDP(const char*, int, int, int, int):

source/sSocket2.cpp:125:68: error: gai_strerrorA was not declared in this scope 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 所以我在#include 中添加了所有这 3 个文件。但是错误还是来了。我应该怎么办?我应该安装一些库文件吗? (这是在 ubuntu 16.04, g++ (Ubuntu 5.5.0-12ubuntu1~16.04) 5.5.0 20171010)

“Unicode”字符的 gai_strerrorA function is a Windows-specific extension for "ASCII" strings (as opposed the gai_strerrorW

普通的 POSIX 标准函数只是 gai_strerror,没有任何字符特定的后缀(Windows 使用宏来定义无后缀的 gai_strerror “函数”取决于其他宏)。