collect2.exe: error: ld returned 1 exit status - Winsock2 в Си
У меня ОС Windows, Стоит MinGW, и я не использую IDE(эти ваши Codeblocks, VS) Решил я как то написать скрипт для отправки запросов через сокеты в Си
Запустил, и вижу вот это:
...\AppData\Local\Temp\cceDFw7s.o:thpool.c:(.text+0x40): undefined reference to "inet_addr@4" ...\AppData\Local\Temp\cceDFw7s.o:thpool.c:(.text+0x65): undefined reference to "socket@12" ...\AppData\Local\Temp\cceDFw7s.o:thpool.c:(.text+0xa6): undefined reference to "connect@12" ...\AppData\Local\Temp\cceDFw7s.o:thpool.c:(.text+0xf3): undefined reference to "send@16" collect2.exe: error: ld returned 1 exit status
Вроде синтаксических ошибок нет, и правильно все использовал. Мне походу надо устанавливать какие-нибудь дополнения? Можете помочь пожалуйста
Вообще с начало я не знал, что для Windows нужно использовать winsock2(не sys/socket как для линукса) Даже когда я до этого пробовал с библиотекой sys/socket выводило такую же ошибку
Вот код:
#include <stdio.h>
#include <string.h>
#include <Winsock2.h>
#include <process.h>
#define PORT 80
int main() {
WSADATA WSAStartData;
SOCKET s_socket;
struct sockaddr_in serv_addr;
int client_operator;
char* client_request = "TEST[NO]";
char* serv_answ[1024];
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = PORT;
serv_addr.sin_addr.s_addr = inet_addr("IP");
s_socket = socket(AF_INET, SOCK_DGRAM, 0);
if (s_socket == INVALID_SOCKET) {
printf("Unable to create socket");
exit(1);
}
client_operator = connect(s_socket, (SOCKADDR*) &serv_addr, sizeof(serv_addr));
if (client_operator == SOCKET_ERROR) {
printf("Unable to connect");
exit(1);
}
client_operator = send(s_socket, client_request, strlen(client_request), 0);
printf("SUCCESSFULL");
return 0;
}