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
“函数”取决于其他宏)。
我正在将在寡妇上运行的代码移动到 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
“Unicode”字符的 gai_strerrorA
function is a Windows-specific extension for "ASCII" strings (as opposed the gai_strerrorW
。
普通的 POSIX 标准函数只是 gai_strerror
,没有任何字符特定的后缀(Windows 使用宏来定义无后缀的 gai_strerror
“函数”取决于其他宏)。