he estado recibiendo este error desde hace bastante tiempo y ahora Google no ha sido de mucha ayuda.referencia indefinida a getaddrinfo
yo soy un novato a Winsock programación y tratando de aprender de los recursos en línea. Estoy intentando construir un servidor simple usando detalles en el sitio web de MSDN. Cada vez que compilo el código (MinGW), aparece el error mencionado en el título (Undefined reference to getaddrinfo
). A continuación se muestra el código:
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#define WINVER WindowsXP
#include <windows.h>
#include <winsock2.h>
#include <winsock.h>
#include <ws2tcpip.h>
#include <stdio.h>
int main() {
WSADATA wsaData;
int iResult;
iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if (iResult != 0) {
printf("WSAStartup failed: %d\n", iResult);
return 1;
}
#define DEFAULT_PORT "27015"
struct addrinfo *result = NULL, *ptr = NULL, hints;
ZeroMemory(&hints, sizeof (hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
hints.ai_flags = AI_PASSIVE;
// Resolve the local address and port to be used by the server
iResult = getaddrinfo(NULL, DEFAULT_PORT, &hints, &result);
if (iResult != 0) {
printf("getaddrinfo failed: %d\n", iResult);
WSACleanup();
return 1;
}
return 0;
}
Estoy compilando con el siguiente comando:
gcc msdn_np.c -o msdn_np.exe -lWS2_32
Pero estoy vinculación de la biblioteca ws2_32 (consulte tercer última línea OP) y todavía estoy recibiendo el problema, eso es lo que es frustrante. – check123
Creo que trabajar con NPP y mingw fue complicado. Cambié a CodeBlocks y cambié la configuración del enlazador para incluir Ws2_32.dll y ahora funciona bien. ¡Gracias! – check123