Microsoft Visual Studio 2008 -> error LNK2019

Iniciado por Ruso_x, 10 Noviembre 2011, 22:40 PM

0 Miembros y 1 Visitante están viendo este tema.

Ruso_x

Hola a todos, es la primera vez que posteo.

Miren intento crear un programa que me conecte 2 ordenadores

El codico de client.c es:

// cliente.cpp: define el punto de entrada de la aplicación de consola.
//
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>


int main(){
char SendBuff[512],RecvBuff[512];
WSADATA wsaData;
SOCKET conn_socket;
struct sockaddr_in server;
struct hostent *hp;
int resp;
char adres[12]="192.168.1.6";
unsigned long uadres;
resp=WSAStartup(MAKEWORD(1,0),&wsaData);
if(resp){
printf("Error al inicializar socket\n");
getchar();
return -1;
}
hp=(struct hostent *)gethostbyaddr (adres,sizeof(adres),AF_INET);
if(!hp){
printf("no se ha encontrado el servidor");
getchar();
return -1;
}
conn_socket=socket(AF_INET,SOCK_STREAM, 0);
if(conn_socket==INVALID_SOCKET) {
printf("Error al crear socket\n");
getchar();
return -1;
}
memset(&server, 0, sizeof(server)) ; //Pone a zero la estructura
memcpy(&server.sin_addr, hp->h_addr, hp->h_length); //copia la los datos de conexion a la mascara server
server.sin_family = hp->h_addrtype;
server.sin_port = htons(5555);
if(connect(conn_socket,(struct sockaddr *)&server,sizeof(server))==SOCKET_ERROR){
printf("Fallo al conectarse con el servidor\n");
closesocket(conn_socket);
return -1;
}
printf("Conexión establecida con: %s\n", inet_ntoa(server.sin_addr));
strcpy(SendBuff,"Hola servidor... .P");
//Enviamos y recibimos datos...
printf("Enviando Mensaje... \n");
send(conn_socket,SendBuff,sizeof(SendBuff),0);
printf("Datos enviados: %s \n", SendBuff);
printf("Recibiendo Mensaje... \n");
recv(conn_socket,RecvBuff, sizeof(RecvBuff), 0);
printf("Datos recibidos: %s \n", RecvBuff);
getchar();
// Cerramos el socket y liberamos la DLL de sockets
closesocket(conn_socket);
WSACleanup();
return EXIT_SUCCESS;
}


El programa client.c que intento compilar en Microsoft Visual Studio 2008 me saca un errores del linker;

1>------ Operación Generar iniciada: proyecto: client, configuración: Debug Win32 ------
1>Vinculando...
1>client.obj : error LNK2019: símbolo externo _WSACleanup@0 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _recv@16 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _send@16 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _strcpy sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _inet_ntoa@4 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _closesocket@4 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _connect@12 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _htons@4 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _memcpy sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _memset sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _socket@12 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _gethostbyaddr@12 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo __imp__getchar sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo __imp__printf sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo _WSAStartup@8 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo ___security_cookie sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo @__security_check_cookie@4 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo @_RTC_CheckStackVars@8 sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2019: símbolo externo __RTC_CheckEsp sin resolver al que se hace referencia en la función _main
1>client.obj : error LNK2001: símbolo externo __RTC_Shutdown sin resolver
1>client.obj : error LNK2001: símbolo externo __RTC_InitBase sin resolver
1>LINK : error LNK2001: símbolo externo _mainCRTStartup sin resolver
1>C:\Documents and Settings\Antonio\Mis documentos\Visual Studio 2008\Projects\client\Debug\client.exe : fatal error LNK1120: 22 externos sin resolver
1>El registro de compilación se guardó en el "file://c:\Documents and Settings\Antonio\Mis documentos\Visual Studio 2008\Projects\client\client\Debug\BuildLog.htm"
1>client - 23 errores, 0 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========



Entonces he intentado entrar en herramientas->opciones->VC++ e incluir las librerias que me faltan, dando la ruta completa a la libreria windows.h en archivos de inclusion,
tengo una carpeta que se llama Microsoft SDKs->Windows dentro de esta carpeta tengo otras 2 una es v5.0 y la otra v6.0A en las 2 hay archivos de encabezado pero en la carpeta de v6.0A ademas hay mas cosas como una carpeta bin con varios programas. Intente incluiendo las rutas de las 2 carpetas, despues lei que puede que hubiera conflictos al tener las 2 carpetas un windows.h  :silbar: entonces probe con las 2 por separado, pero el problema persiste. Ya en un acto de desesperacion instale Dev-Cpp para probar, pero ahi tambien me da algo parecido

C:\Dev-Cpp\Bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: warning: cannot find entry symbol _mainCRTStartup; defaulting to 00401000
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x2a):cliente.c: undefined reference to `_alloca'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x2f):cliente.c: undefined reference to `__main'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x66):cliente.c: undefined reference to `WSAStartup@8'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x84):cliente.c: undefined reference to `printf'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x89):cliente.c: undefined reference to `getchar'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0xb6):cliente.c: undefined reference to `gethostbyaddr@12'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0xd4):cliente.c: undefined reference to `printf'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0xd9):cliente.c: undefined reference to `getchar'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x104):cliente.c: undefined reference to `socket@12'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x122):cliente.c: undefined reference to `printf'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x127):cliente.c: undefined reference to `getchar'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x154):cliente.c: undefined reference to `memset'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x182):cliente.c: undefined reference to `memcpy'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x19f):cliente.c: undefined reference to `htons@4'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x1c9):cliente.c: undefined reference to `connect@12'

C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x1dd):cliente.c: undefined reference to `printf'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x1eb):cliente.c: undefined reference to `closesocket@4'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x20b):cliente.c: undefined reference to `inet_ntoa@4'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x21e):cliente.c: undefined reference to `printf'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x234):cliente.c: undefined reference to `strcpy'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x240):cliente.c: undefined reference to `printf'

C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x268):cliente.c: undefined reference to `send@16'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x281):cliente.c: undefined reference to `printf'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x28d):cliente.c: undefined reference to `printf'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x2b5):cliente.c: undefined reference to `recv@16'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x2ce):cliente.c: undefined reference to `printf'

C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x2d3):cliente.c: undefined reference to `getchar'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x2e1):cliente.c: undefined reference to `closesocket@4'
C:\DOCUME~1\Antonio\CONFIG~1\Temp/cc4ucaaa.o(.text+0x2e9):cliente.c: undefined reference to `WSACleanup@0'

collect2: ld returned 1 exit status
gcc.exe: unrecognized option `-verbose'

Ejecución Terminada


Estoy bastante frustrado con esto, solo necesito compilar algo en windows  :xD por que en linux el server me funciona i no se que mas hacer.
Donde esta mi error????
Que es lo que hago mal???

Gracias de antemano por su tiempo
Saludos

Eternal Idol

Podrias buscar donde poner la libreria de importacion ws2_32.lib en el IDE y sino asi de simple podes poner en la primera linea del archivo y el enlazador del VC++ resolvera las funciones:
Código (cpp) [Seleccionar]
#pragma comment(lib, "ws2_32")
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Ruso_x

Gracias, el problema se resolvio, quite al final las rutas i deje la directiva como dijiste i compilo a la primera  ;-) ;-) mil gracias.
Saludos

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón