Win 7 64bit e indefinito riferimento getaddrinfo
Domanda
Ho pezzo esempio di codice:
#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 %d\n", err);
return 1;
}
, che provo a compilare il mio 64 bit di Windows 7:
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o src\sample.o ..\src\sample.c
..\src\sample.c: In function 'main':
..\src\sample.c:26:2: warning: implicit declaration of function 'getaddrinfo' [-Wimplicit-function-declaration]
gcc -o sample.exe src\sample.o -lws2_32
src\sample.o: In function `main':
C:\workspace\sample\Debug/../src/sample.c:26: undefined reference to `getaddrinfo'
collect2: ld returned 1 exit status
ottengo un errore. Come per fare questo lavoro?
Soluzione
Se non ci si rivolge Windows 2000 o più anziani, le impostazioni WINVER
a 0x501 dovrebbe lasciare correttamente la compilazione del codice.
gcc -DWINVER=0x501 ...
(o usare un #define
prima di includere qualsiasi intestazione di Windows nell'origine.)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow