c-Win 7 64位,未定义对getaddrinfo的引用



我有一段示例代码:

#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
// link with Ws2_32.lib
#pragma comment (lib, "Ws2_32.lib")
//...
if ((err = getaddrinfo(hostname, service, &hints, &res)) != 0)
{
    printf("error %dn", err);
    return 1;
}

我试图在我的64位Windows7:上编译

gcc -O0 -g3 -Wall -c -fmessage-length=0 -o srcsample.o ..srcsample.c
..srcsample.c: In function 'main':
..srcsample.c:26:2: warning: implicit declaration of function 'getaddrinfo' [-Wimplicit-function-declaration]
gcc -o sample.exe srcsample.o -lws2_32
srcsample.o: In function `main':
C:workspacesampleDebug/../src/sample.c:26: undefined reference to `getaddrinfo'
collect2: ld returned 1 exit status

我犯了一个错误。如何做到这一点?

如果您的目标不是Windows 2000或更早版本,则将WINVER设置为0x501应该可以正确构建代码。

gcc -DWINVER=0x501 ...

(或者在源代码中包含任何Windows标头之前使用#define。)

最新更新