Domanda
Sto creando un pacchetto usando Cmake
Sto seguendo la struttura
bin/
bin1
lib/
lib1
lib2
Dove lib1 e lib2 sono libreria dinamica esterna. Come posso impostare RPATH in modo che si collega automaticamente a lib1 e lib2?
Soluzione
Mi sono preoccupato anche di cmake su questo. CMAKE utilizza Cmake_SKIP_BUILD_RPATH per il collegamento a tempo di build e CMAKE_INSTALL_RPATH per impostare l'RPATH utilizzato quando è costruito il target di installazione. Cmake ha alcune buone informazioni sull'uso del suo meccanismo RPATH:http://www.cmake.org/wiki/cmake_rpath_handling
Un metodo alternativo è utilizzare LDConfig. Ho notato che quando crei SVN (1.6.17), è in grado di invocare l'installazione invoca LDConfig per impostare RPATH.
Dai un'occhiata a $ Origin in quanto ne avrai bisogno nel tuo Rpath per mantenerlo rispetto al binario piuttosto che rispetto a $ PWD.
Costruire un esempio semplice (hello-world) dell'utilizzo dell'opzione di LD -Rpath con $ Origin
Altri suggerimenti
AFAIK, Cmake aggiunge automaticamente Rpaths a tutti gli obiettivi, che stai collegando con Target_link_Libraries ().
Per spegnerlo c'è CMAKE_SKIP_RPATH
opzione.