Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





[SOLVED] Estoy desesperado! undefined refence con librerias estáticas

Iniciado por Prompt, 19 de Enero de 2009, 02:21:06 AM

« anterior - próximo »

Prompt

Cita de: fjfnaranjo en 20 de Enero de 2009, 03:07:06 PM
Cita de: Prompt en 20 de Enero de 2009, 02:28:34 PM
Cuando encuentre a quien inventó el linker de GCC lo mato... para que **** existen entonces las librerias estaticas?

Menuda mierda de GCC en el año 2009 linkando con librerias estaticas...

¿Tienes algo en contra de GCC?

Si lo tienes, por favor, aporta algo que no sea solo un insulto...

A ver si ahora todo tiene que ser como quieran los compiladores de Microsoft, y la gente de *nix y Mac son unos inútiles...

Mira, ni te has leido el post y encima usas Windows! por favor... tu post está totalmente fuera de lugar y no has entendido el contenido de mi ultimo post, que ni siquiera le echo la culpa a GCC. Pero aun está por ver.

Vaya tela lo que hay que aguantar...  >:(

tewe76

Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

Vicente

Cita de: tewe76 en 20 de Enero de 2009, 07:23:25 PM
Haya paz... Venga, un besito pa los dos :-*  :P

CTRL + SHIFT + B POWAAAAAA (compilar dentro del VS :p)

En serio, suerte con las referencias, ese tipo de cosas son una tortura... :(

fjfnaranjo

Cita de: Prompt en 20 de Enero de 2009, 07:22:07 PM
Mira, ni te has leido el post y encima usas Windows! por favor... tu post está totalmente fuera de lugar y no has entendido el contenido de mi ultimo post, que ni siquiera le echo la culpa a GCC. Pero aun está por ver.

Pues sí... No solo llevo varios días siguiendo el hilo si no que para colmo escribo desde un GNU/Linux Debian Lenny usando Iceweasel. Cuando te dije que usases argumentos no me refería a una falacia ad hominem...

Entiendo por lo que estás pasando, porque es bastante común y nos ha pasado a todos los que programamos cuando queremos hacer un build de algo que tiene muchas dependencias de librerías externas. Solo te pido que no te metas gratuitamente con el compilador porque no funcione como tu desees (o como hayas aprendido que debe funcionar).

Es lo único que pretendía, no que esto se convirtiese en ataques personales y gente poniendo orden.

De hecho, yo suelo ser muy poco confrontativo y bastante simpático. Pero es que cuando se meten con mis ñus me pongo malo :P Y vamos, por supuesto que si pudiese echarte una mano te la echaría. Incluso en persona, pero va a ser imposible por una mera cuestión de logística.

Perdón por meterme en plan troll en tu hilo de petición de colaboración (me debe estar bajando la regla hoy...), pero es que comentarios como los que haces son los que acaban dando mala fama al SL... Esta claro que a la mayoría de la gente que conoce GCC no le va a afectar lo que comentas, pero es que estoy harto de encontrarme a gente (e incluso a algunos ingenieros) que dicen cosas como: "Pues el automake es una mierda porque es un caos!". Alguien tenía que salir en su defensa ;)
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

davidgf

Tranquilo Prompt, todo pasará xD

Esos mismos problemas los he tenido miles de veces con gcc, y no por que no sepa... (bueno a lo mejor si xD)
Cuando compilo usando cross-tools, sobretodo Dreamcast y GBA obtengo muchos unresolved, pero siempre se solucionan cambiando el orden de las libs... O eso o recompilandolas todas... Podrias poner el comando exacto que usas para linkar?? Yo tuve problemas al enlazar librerias estaticas y dinámicas a la vez y no recuerdo cómo lo solucioné ahora...

En fin, paz hermanos, que todos estamos del mismo lado, no?

Saludos!
Tàrraco: una aventura por la Tarragona romana (http://tarraco.davidgf.net)

Buffon

Cita de: Prompt en 20 de Enero de 2009, 09:36:17 AM
Alguien podria decirme algun comando / programa que detecte si hay dependencias cruzadas entre librerias?
Lo mismo es mi problema y el linker no lo detecta... es una posibilidad.

dependency walker !

Prompt

Voy a hablar en modo cabreo, así que perdoname si te ofende algo, porque yo me siento ofendido.

[Mode cabreo=ON]

Cita de: fjfnaranjo en 20 de Enero de 2009, 09:47:32 PM
Pues sí... No solo llevo varios días siguiendo el hilo si no que para colmo escribo desde un GNU/Linux Debian Lenny usando Iceweasel. Cuando te dije que usases argumentos no me refería a una falacia ad hominem...
Gracias pues por aportar tus grandes ideas, ayudas en este foro y a sus miembros.

Cita de: fjfnaranjo
Entiendo por lo que estás pasando, porque es bastante común y nos ha pasado a todos los que programamos cuando queremos hacer un build de algo que tiene muchas dependencias de librerías externas.
No estoy hablando de algo común, por dios! se perfectamente compilar librerias staticas con GCC, he buzeado en internet y leído toda la documentación referente al compilador y al linker (que es donde empiezan los problemas).

Cita de: fjfnaranjo
Solo te pido que no te metas gratuitamente con el compilador porque no funcione como tu desees (o como hayas aprendido que debe funcionar).
Lo 1º!  >:( que el problema no está en compilar, para empezar!
Lo 2º que no tengo problemas con el compilador, es mi favorito
Lo 3º es que no tienes ni idea de que he aprendido en mi vida ni que no, te pido que no vuelvas a hablar vaciladas que ya está bien de convertir post serios en mierda sensacionalista y montar follón.

Dicho esto, nuevamente digo que no has entendido de que va el post, y dejame que reflexione yo sobre tus conocimientos, porque ni siquiera hablas con propiedad con el tema del "compilador". Te repito que es el LINKER!! ld  :grrr:
[Mode cabreo=OFF]

Cita de: fjfnaranjo
Es lo único que pretendía, no que esto se convirtiese en ataques personales y gente poniendo orden.

De hecho, yo suelo ser muy poco confrontativo y bastante simpático. Pero es que cuando se meten con mis ñus me pongo malo :P Y vamos, por supuesto que si pudiese echarte una mano te la echaría. Incluso en persona, pero va a ser imposible por una mera cuestión de logística.
Logistica es de material y creo que tienes material para darme consejos sobre un tema tan común... xD

Cita de: fjfnaranjo
Perdón por meterme en plan troll en tu hilo de petición de colaboración (me debe estar bajando la regla hoy...), pero es que comentarios como los que haces son los que acaban dando mala fama al SL... Esta claro que a la mayoría de la gente que conoce GCC no le va a afectar lo que comentas, pero es que estoy harto de encontrarme a gente (e incluso a algunos ingenieros) que dicen cosas como: "Pues el automake es una mierda porque es un caos!". Alguien tenía que salir en su defensa ;)

Que es, SL? Second Life?  ???

Yo no digo, que GCC sea una mierda, es que por esto entre otras cosas te repito que no has entendido mi post. Me he referido a que el linker no da suficiente información ni el compilador. Y esto es una realidad. Hay una serie de errores genéricos y es lo que hay. "unresolved external". El compilador G++ y el linker ld no son capaces ambos de detectar un futuro problema de "unresolved external" si hay un fallo de diseño o referencias repetidas o mil historias. Es incapaz y punto porque no tiene un analizador para eso. Por lo cual, al juntarlo todo "explota" y el linked no sabe con que demonios linkar, no encuentra la definición.

Esto es algo, que nos guste o no, al compilador de microsofot al menos no le pasa, y cualquiera de la industria te puede decir y justificar que el compilador y el linker de Visual Studio es extremandamente bueno. Para mí peca de hacerte la vida facil, es muy flexible e inteligente como para saber con que linkar etc... pero esto es un gusto personal.

Si me permite, esta estupidez de discusión una vez aclarado ciertos puntos yo creo que ya ha finalizado, si te parece bien. Si resuelvo esto el día de mañana cuando alguien busque en el foro, se va a encontrar con estos posts de 2 personas discutiendo tonterias de "no digas na malo de GCC"... esto está fuera de lugar para el contenido del post por favor...

Prompt

Cita de: davidgf en 21 de Enero de 2009, 12:53:46 AM
Tranquilo Prompt, todo pasará xD

Esos mismos problemas los he tenido miles de veces con gcc, y no por que no sepa... (bueno a lo mejor si xD)
Cuando compilo usando cross-tools, sobretodo Dreamcast y GBA obtengo muchos unresolved, pero siempre se solucionan cambiando el orden de las libs... O eso o recompilandolas todas... Podrias poner el comando exacto que usas para linkar?? Yo tuve problemas al enlazar librerias estaticas y dinámicas a la vez y no recuerdo cómo lo solucioné ahora...

En fin, paz hermanos, que todos estamos del mismo lado, no?

Saludos!

El de arriba, g++ se encarga de llamar a ld y mete todos los path del "sistema" de MingW y los nativos de linux, lo puse en verbose (-v) para verlo pero no guardé el log.

Lo que estoy haciendo ahora es limpiar y cambiar el diseño de mi motor a un diseño más limpio ordenado y que evite referencias cruzadas entre librerias lo máximo posible. Estoy quitando muchas definiciones repetidas, que el compilador puede resolver bien pero quizás el liker no, creo y espero que ahí esté el problema. Os iré comentando como lo soluciono ya que es un problemon dificil de solucionar y como dije anteriormente el linker ld o el compilador (por el hecho de generar el el código) no son lo suficientemente listos como para resolver esas definiciones. Esto es un gusto personal, yo lo prefiero así, aunque me pege 2 semanas haciendo refactoring.

Gracias por tu comentario y tu ayuda, una vez haga refactoring volveré a intentar compilar y linkar todo y postearé con el log "verbose".

Prompt

Cita de: Buffon en 21 de Enero de 2009, 08:58:25 AM
dependency walker !

:o yeah! un poco tarde porque estoy en medio del refactoring :P pero muchas gracias, me lo apunto!


Prompt

Ah se me olvidaba, finalmente lo que he hecho es dejar como directorio del proyecto, como un directorio más de código fuente toda la carpeta del motor, es como compilarlo estáticamente y me va perfecto, es una buena opción.

No obstante, probablemente ahora mismo funcionaría el "linkado" estático despues de hacer refactoring y limpieza. Si le falla a alguien el linkado con las librerias es una buena practica incluir tooooda la carpeta de donde están las librerias del proyecto y resolver los conflictos. (que de veces he dicho libreria xD)

Un saludo a todos y gracias por la atención.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.