Я создаю пакет, используя cmake
У меня следующая структура
bin/ bin1 lib/ lib1 lib2
Где lib1 и lib2 - внешние динамические библиотеки.Как установить RPATH, чтобы он автоматически связывался с lib1 и lib2?
Я тоже спорил с 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
AFAIK, CMake автоматически добавляет rpath ко всем целям, которые вы связываете с target_link_libraries ().
Чтобы отключить его, существует опция CMAKE_SKIP_RPATH.
CMAKE_SKIP_RPATH