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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top