ano*_*ard 5 c winapi mingw winsock2 getaddrinfo
我有一个使用的C程序getaddrinfo()
.它在Linux和Mac OS X上按预期工作.
我正在将它移植到Windows.
当我编译它(使用MinGW gcc)时,我收到以下警告:
ext/socket/socket.c: In function 'sl_tcp_socket_init':
ext/socket/socket.c:98:5: warning implicit declaration of function 'getaddrinfo' [-Wimplicit-function-declaration]
ext/socket/socket.c:104:9: warning implicit declaration of function 'freeaddrinfo' [-Wimplicit-function-declaration]
Run Code Online (Sandbox Code Playgroud)
然后整个事情无法链接到未定义的引用getaddrinfo()
和freeaddrinfo()
.
现在,根据这个MSDN页面,getaddrinfo()
Windows支持并位于头文件Ws2tcpip.h
和库文件中Ws2_32.lib
.
我包括Ws2tcpip.h
并链接-lWs2_32
,所以我不确定为什么这不起作用.
enh*_*lep 10
如果您查看ws2tcpip.h的第297行,您可以看到_WIN32_WINNT的值已经检查过.
#if (_WIN32_WINNT >= 0x0501)
void WSAAPI freeaddrinfo (struct addrinfo*);
int WSAAPI getaddrinfo (const char*,const char*,const struct addrinfo*,
struct addrinfo**);
int WSAAPI getnameinfo(const struct sockaddr*,socklen_t,char*,DWORD,
char*,DWORD,int);
#else
/* FIXME: Need WS protocol-independent API helpers. */
#endif
Run Code Online (Sandbox Code Playgroud)
只需_WIN32_WINNT
在你的包含之前#define .
归档时间: |
|
查看次数: |
6747 次 |
最近记录: |