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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top