• Sábado 14 de Diciembre de 2024, 17:50

Autor Tema:  Error Al Linkar  (Leído 2316 veces)

Jovi

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Error Al Linkar
« en: Viernes 15 de Julio de 2005, 10:59 »
0
Estoy haciendo un proyecto en VC++ .Net que compila perfectamente el problema es cuando intento generar la solución que me da el error de linkado:

error LNK2019: símbolo externo _main sin resolver al que se hace referencia en la función _mainCRTStartup

El proyecto es un servidor que utiliza sockets, y creo que el problema es algo relacionado con ello y con alguna librería, pero he incluido (creo) todas las necesarias y algunas que he leido por internet, pero siempre me sale el mismo error.
¿Puede alguien ayudarme?

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Error Al Linkar
« Respuesta #1 en: Viernes 15 de Julio de 2005, 14:33 »
0
estas usando C? o C++?
debes condigurar elrpoyecto para que compile de acuerdo al lenguaje, y sino estoy mal dentro de las ocnfiguraciones del proyecto debes decir cual es el metodo principal, en este caso main
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error Al Linkar
« Respuesta #2 en: Sábado 16 de Julio de 2005, 03:03 »
0
El lenguaje que estes usando no tiene la menor importancia, da exactamente lo mismo que sea C o C++ y el problema no es que tenga que especificar el metodo de entrada (solo hay que hacerlo sino es uno standard) sino que el enlazador no lo encuentra.

Si tenes en las opciones configurado el subsystem del proyecto como CONSOLE necesitas usar main, cambialo a WINDOWS si estas usando WinMain como funcion principal de tu proyecto.

Si usas una funcion propia diferente tenes que usar la configuracion del linker para establecer el punto de entrada (Entry Point) desde linea de comandos es /entry:nombre_Funcion.
Si asi fuera solo podrias compilarlo en RELEASE y eliminaria la inicializacion de la Run Time Library, hay un par de tutoriales mios al respecto en este sitio, cualquier cosa pregunta mas al respecto.

 :smartass:  :whistling:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Jovi

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Error Al Linkar
« Respuesta #3 en: Lunes 18 de Julio de 2005, 09:08 »
0
He establecido como punto de entrada la siguiente función en la configuración del linker y sigue dándome el mismo error. Ya no se que hacer...

int __stdcall DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
        return 1;
}

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error Al Linkar
« Respuesta #4 en: Lunes 18 de Julio de 2005, 09:46 »
0
Bueno, entonces estas haciendo una DLL y no un ejecutable. Dudo mucho que quieras quitar la CRT entonces te recomiendo hacer lo siguiente:

1. Deja en blanco el campo de Entry Point.
En vez de establecer el Entry Point con la correspondiente perdida de inicializacion de la CRT usa DllMain de la misma manera, esta sera llamada por el Entry Point de la CRT:

Código: Text
  1.  
  2. BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
  3. {
  4.   return 1;
  5. }
  6.  
  7.  

2. Cambia el tipo de proyecto, ahora mismo debe ser "Aplicacion (.exe)", tenes que cambiar a "Biblioteca dinamica (.dll") entonces el enlazador buscara DllMain y asunto solucionado. Para hacer esto con Visual Studio .NET 2003:
Proyecto>>Propiedades>>General>>Tipo de Configuracion

3. Establece el subsystem a WINDOWS. Para hacer esto con Visual Studio .NET 2003:
Proyecto>>Propiedades>>Vinculador>>Sistema>>Subsistema

 :smartass:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Jovi

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Error Al Linkar
« Respuesta #5 en: Lunes 18 de Julio de 2005, 10:08 »
0
Muchas gracias, ahora compila perfectamente, solo una pregunta más a riesgo de ser pesada ¿no debería generarme un archivo .dll? solo me genera un .exe que no puedo incluir en el otro proyecto donde necesito la librería.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error Al Linkar
« Respuesta #6 en: Lunes 18 de Julio de 2005, 12:59 »
0
De nadas, me alegro de que te haya servido  B)

Para cambiar el nombre del archivo de salida (que ya es una DLL por cierto) en Visual Studio .NET 2003:

Proyecto>>Propiedades>>Vinculador>>General>>Archivo de resultados

 :comp:  :ph34r:  :whistling:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.