CMAKE RPATH с упаковкой - PullRequest
       37

CMAKE RPATH с упаковкой

5 голосов
/ 06 декабря 2011

Я создаю пакет, используя cmake

У меня следующая структура

bin/
    bin1
lib/

    lib1
    lib2

Где lib1 и lib2 - внешние динамические библиотеки.Как установить RPATH, чтобы он автоматически связывался с lib1 и lib2?

Ответы [ 2 ]

5 голосов
/ 30 марта 2012

Я тоже спорил с cmake об этом.Cmake использует CMAKE_SKIP_BUILD_RPATH для компоновки во время сборки и CMAKE_INSTALL_RPATH для установки rpath, используемого при сборке цели установки.У cmake есть хорошая информация об использовании механизма rpath: http://www.cmake.org/Wiki/CMake_RPATH_handling

Альтернативный метод - использовать ldconfig.Я замечаю, что когда вы собираете svn (1.6.17), это make install target вызывает ldconfig для установки rpath.

взгляните на $ ORIGIN, так как он понадобится вам в вашем rpath для сохранения его относительно двоичного файла, а не относительно $ PWD.

Создание простого (приветworld-esque) пример использования опции ld -rpath с $ ORIGIN

0 голосов
/ 06 декабря 2011

AFAIK, CMake автоматически добавляет rpath ко всем целям, которые вы связываете с target_link_libraries ().

Чтобы отключить его, существует опция CMAKE_SKIP_RPATH.

...