Pregunta
Estoy creando paquete usando cmake
Estoy teniendo la siguiente estructura
bin/
bin1
lib/
lib1
lib2
Donde lib1 y lib2 son biblioteca dinámica externa. ¿Cómo puedo establecer RPATH para que se vincule automáticamente con Lib1 y Lib2?
Solución
También me ha preocupado con CMake en esto. CMake usa cmake_skip_build_rpath para vincular en la hora de compilación y cmake_install_rpath para establecer el rpath utilizado cuando se construye el objetivo de instalación. CMake tiene buena información sobre el uso de su mecanismo RPATH:http://www.cmake.org/wiki/cmake_rpath_handling
Un método alternativo es usar ldconfig. Noto que cuando construyes SVN (1.6.17), es hacer que Install Target invoque LDCONFIG para establecer RPATH.
Eche un vistazo a $ Origin, ya que lo necesitará en su rpath para mantenerlo en relación con el binario en lugar de en relación con $ PWD.
Construyendo un ejemplo simple (Hello-World-Desque) de usar la opción de LD -rpath con $ origen
Otros consejos
AFAIK, CMake agrega automáticamente RPATH a todos los objetivos, que está vinculando con Target_Link_Libraries ().
Para apagarlo hay CMAKE_SKIP_RPATH
opción.