elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Microsoft Visual Studio 2008 -> error LNK2019
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Microsoft Visual Studio 2008 -> error LNK2019  (Leído 6,036 veces)
Ruso_x

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Microsoft Visual Studio 2008 -> error LNK2019
« en: 10 Noviembre 2011, 22:40 pm »

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:

Código
  1. // cliente.cpp: define el punto de entrada de la aplicación de consola.
  2. //
  3. #include <windows.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7.  
  8. int main(){
  9. char SendBuff[512],RecvBuff[512];
  10. WSADATA wsaData;
  11. SOCKET conn_socket;
  12. struct sockaddr_in server;
  13. struct hostent *hp;
  14. int resp;
  15. char adres[12]="192.168.1.6";
  16. unsigned long uadres;
  17. resp=WSAStartup(MAKEWORD(1,0),&wsaData);
  18. if(resp){
  19. printf("Error al inicializar socket\n");
  20. return -1;
  21. }
  22. hp=(struct hostent *)gethostbyaddr (adres,sizeof(adres),AF_INET);
  23. if(!hp){
  24. printf("no se ha encontrado el servidor");
  25. return -1;
  26. }
  27. conn_socket=socket(AF_INET,SOCK_STREAM, 0);
  28. if(conn_socket==INVALID_SOCKET) {
  29. printf("Error al crear socket\n");
  30. return -1;
  31. }
  32. memset(&server, 0, sizeof(server)) ; //Pone a zero la estructura
  33. memcpy(&server.sin_addr, hp->h_addr, hp->h_length); //copia la los datos de conexion a la mascara server
  34. server.sin_family = hp->h_addrtype;
  35. server.sin_port = htons(5555);
  36. if(connect(conn_socket,(struct sockaddr *)&server,sizeof(server))==SOCKET_ERROR){
  37. printf("Fallo al conectarse con el servidor\n");
  38. closesocket(conn_socket);
  39. return -1;
  40. }
  41. printf("Conexión establecida con: %s\n", inet_ntoa(server.sin_addr));
  42. strcpy(SendBuff,"Hola servidor... .P");
  43. //Enviamos y recibimos datos...
  44. printf("Enviando Mensaje... \n");
  45. send(conn_socket,SendBuff,sizeof(SendBuff),0);
  46. printf("Datos enviados: %s \n", SendBuff);
  47. printf("Recibiendo Mensaje... \n");
  48. recv(conn_socket,RecvBuff, sizeof(RecvBuff), 0);
  49. printf("Datos recibidos: %s \n", RecvBuff);
  50. // Cerramos el socket y liberamos la DLL de sockets
  51. closesocket(conn_socket);
  52. WSACleanup();
  53. return EXIT_SUCCESS;
  54. }
  55.  

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

Código:
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ódigo:
 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


En línea

Saludos
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Microsoft Visual Studio 2008 -> error LNK2019
« Respuesta #1 en: 11 Noviembre 2011, 00:35 am »

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
  1. #pragma comment(lib, "ws2_32")


En línea

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

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Re: Microsoft Visual Studio 2008 -> error LNK2019
« Respuesta #2 en: 11 Noviembre 2011, 12:15 pm »

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

Saludos
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Microsoft Visual Studio 2008 -> error LNK2019
« Respuesta #3 en: 11 Noviembre 2011, 12:26 pm »

De nadas  ::)
En línea

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines