HP-UX hpsr1 B.11.23 U ia64 :
CODE:
#include <netdb.h>
#include <sys/socket.h>
int main() {
char host[256];
char buf[8192];
struct hostent he, *p;
int err;
gethostbyname_r(host, &he, buf, sizeof(buf), &p, &err);
return 0;
}
aCC try.cpp
"try.cpp", line 8: error #2020: identifier "gethostbyname_r" is undefined
gethostbyname_r(host, &he, buf, sizeof(buf), &p, &err);
在/usr/include/netdb.h中有gethostbyname_r的声明, 但是编译还是报错。。请大家分析一下是什么原因。
6 个解决方案
#1
在/usr/include/netdb.h中有没有一些预编译选项?
#2
-D_REENTRENT开关加了没有?请看一下编译手册,可能还有其他开关。
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
#3
加了-D_REENTRAN -D__ia64 -D_PTHREADS_DRAFT4 之后 , 就报下面的错
try.cpp", line 10: error #2140: too many arguments in function call
gethostbyname_r(host, &he, (struct hostent_data *)buf, sizeof(buf), &p, &err);
好像netdb.h中只有3个参数的形式声明。。。
try.cpp", line 10: error #2140: too many arguments in function call
gethostbyname_r(host, &he, (struct hostent_data *)buf, sizeof(buf), &p, &err);
好像netdb.h中只有3个参数的形式声明。。。
#4
man -a gethostbyname_r
看看到底有几个地方定义了gethostbyname_r
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
看看到底有几个地方定义了gethostbyname_r
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
#5
ld: Mismatched ABI (not an ELF file) for -ld4r
Fatal error.
现在报这个错
Fatal error.
现在报这个错
#6
那就和这个函数无关了。
慢慢排错吧。
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
慢慢排错吧。
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
#1
在/usr/include/netdb.h中有没有一些预编译选项?
#2
-D_REENTRENT开关加了没有?请看一下编译手册,可能还有其他开关。
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
#3
加了-D_REENTRAN -D__ia64 -D_PTHREADS_DRAFT4 之后 , 就报下面的错
try.cpp", line 10: error #2140: too many arguments in function call
gethostbyname_r(host, &he, (struct hostent_data *)buf, sizeof(buf), &p, &err);
好像netdb.h中只有3个参数的形式声明。。。
try.cpp", line 10: error #2140: too many arguments in function call
gethostbyname_r(host, &he, (struct hostent_data *)buf, sizeof(buf), &p, &err);
好像netdb.h中只有3个参数的形式声明。。。
#4
man -a gethostbyname_r
看看到底有几个地方定义了gethostbyname_r
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
看看到底有几个地方定义了gethostbyname_r
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
#5
ld: Mismatched ABI (not an ELF file) for -ld4r
Fatal error.
现在报这个错
Fatal error.
现在报这个错
#6
那就和这个函数无关了。
慢慢排错吧。
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150
慢慢排错吧。
-----------------------------------------------------------
《征服C/C++企业软件开发核心技术》
主题词 unix/linux 多线程 网络通讯 数据库 内存排错和性能分析
http://www.china-pub.com/209150