Tengo una biblioteca compartida llamada "libmylib.so" que se encuentra dentro de una carpeta "LIBS" fuera del directorio de origen de mi aplicación. Para vincular la biblioteca a mi ejecutable principal, estoy usando los siguientes comandos de CMake:
set(LIBS_FOLDER "${CMAKE_SOURCE_DIR}/../LIBS") find_library(MYLIB NAMES mylib libmylib mylib.dll HINTS ${LIBS_FOLDER}) target_link_libraries(MyApp PUBLIC ${MYLIB}) Esto funciona bien tanto en Linux como en Windows, sin embargo, en Linux, cuando implemento mi aplicación, el ejecutable se vincula a mylib usando su ruta absoluta. De hecho, ejecutar ldd MyApp muestra que está vinculado a:
libmylib.so => /ruta_absoluta_a_libs_dir/libmylib.so (0x00007f9dae78f000)
Obviamente, esto es un problema ya que no puedo implementar esto en ningún entorno. ¿Cómo puedo evitar este problema? ¿Hay alguna forma de vincular e implementar la biblioteca compartida correctamente?