Lib hell

Todo marchaba bien, la mañana era fresca y un tanto nublada aunque estábamos en junio. Como siempre el edificio gris y angular nos recibía con indiferencia. Y es que así es la vida del becario: no puedes esperar ni gloria ni reconocimiento.

Tenía una misión sencilla, incorporar a la solución dos proyectos, comprobar su configuración y subirlo todo al CVS del equipo, tomarme un café y seguir con un par de features menores… como decía, todo marchaba bien.

Al cabo de una hora de compilaciones me doy cuenta de que la segunda biblioteca ReplicantBody exige la última versión del motor de render: OpenSceneGraph , miro preocupado el reloj, sé que OSG es un proyecto muy grande. Bajo el fuente y lanzo la compilación, pasa una hora y media y el motor de render se ha compilado: ¡bien! Recompilo el Replicant Body, ok muchos de los errores se han despejado. Sin embargo fallan los enganches con la DLL de Cal3d estoy pelín sorprendido porque aparentemente, tras toda la verborrea de STL el problema está con una:

std::string& foobar (int i) ;

Empiezo a temblar, esto huele a bibliotecas de templates, sigo investigando y recompilo el Cal3D, luego el RB ahora estoy seguro de haber hecho todas las compilaciones contra la misma versión de STL, … ¿ o no? … me levanto de la silla un rato … vuelvo …

Finalmente he comprobado algo interesante: todas las compilaciones han ocurrido contra una sección del disco donde no estaban las STLPort, así que el compilador ha optado por usar las STL por defecto de .Net, en mi caso eso significa dolor. La moraleja parece clara: nada de jugar con los directorios de bibliotecas o si lo haces, asegúrate de que el comportamiento por defecto del compilador te conviene. … :P
PD: Espero que esto no acabe con mi mente… lamento esta entrada estúpida no me lo tengáis en cuenta ….

Leave a Reply

You must be logged in to post a comment.