Когда я пытаюсь скомпилировать свою маленькую программу на C, я получаю сообщение об ошибке:
: неопределенная ссылка на `getaddrinfo '. Я также включил заголовочные файлы netdb.h и socket.h. Но ошибка в компоновщике.
Я вижу запрос уже в stackoverflow, но это было в Windows. Я пытаюсь это на машине Linux.
Как сделать так, чтобы компиляция прошла успешно?
Спасибо!
Вот код:
#include <stdlib.h>
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netdb.h>
int main() {
int status;
struct addrinfo hints;
struct addrinfo *servinfo; // will point to the results
memset(&hints, 0, sizeof hints); // make sure the struct is empty
hints.ai_family = AF_UNSPEC; // don't care IPv4 or IPv6
hints.ai_socktype = SOCK_STREAM; // TCP stream sockets
hints.ai_flags = AI_PASSIVE; // fill in my IP for me
if ((status = getaddrinfo(NULL, "80", &hints, &servinfo)) != 0)
{
fprintf(stderr, "getaddrinfo error: \n");
exit(1);
}
printf("\n %d %d %d %d %d %s",servinfo->ai_flags, servinfo->ai_family, servi nfo->ai_socktype, servinfo->ai_protocol, servinfo->ai_addrlen, servinfo->ai_canonname);
return 0;
}
gcc test5.c
/tmp/ccrFX43l.o(.text+0x4c): в функции main':
: undefined reference to
getaddrinfo '
collect2: ld вернул 1 статус выхода