Mi problema es relativamente simple: estoy utilizando fmod en linux y viene como una librería que se carga dinámicamente (un .so que es lo que viene a ser una .dll, si no he entendido mal). El intríngulis viene porque cuando lo enlazo, se guarda exactamente la ruta a la librería que he utilizado para enlazar, pero esto me da un problema al ejecutar que demostraré con un ejemplo:
Tengo esta estructura de directorios:
- raíz, donde van a parar los ejecutables de la demo
- data
- src – el código fuente
- fmod – fmod, sus .h, sus .so
- otras librerías que no vienen a cuento
El problema es que al enlazar, en la línea de comandos le pongo algo tal que
g++ -w -O3 -g -o ../out $(SOURCES) ./fmod/libfmodex.so
¿Y qué pasa con eso? Pues que si luego ejecutas la demo (que recordemos está en el raíz), te sale que no puede cargar la librería porque no está exactamente en ./fmod/libfmodex.so
La solución pasaría por editar de alguna manera que desconozco la tabla de enlaces del ejecutable y poder cambiarlo a ./libfmodex.so una vez enlazado. De esa manera, incluso podría cambiar el make para que al compilar, utilizara la copia de libfmodex.so que tiene que estar en la raíz. Pero no acabo de dar con el comando mágico…
A ver si alguien ha hecho esto antes, es que en Mac sé que lo hice una vez, pero ahora no recuerdo cómo se llamaba el comando, ni sé muy bien si lo estoy buscando como toca.


