Я пытаюсь создать программное обеспечение на основе CMake под OS X (Yosemite), которое можно успешно создать в Fedora 21. Он использует кучу библиотек. Оба, большие открытые, такие как Boost и некоторые самозанятые, лежащие в /installation _folder/lib. Я использую CMake версии 3.3.0.
После выполнения
mkdir build
cd build
cmake .. -DCMAKE_C_COMPILER=/usr/local/Cellar/gcc/5.2.0/bin/gcc-5 -DCMAKE_CXX_COMPILER=/usr/local/Cellar/gcc/5.2.0/bin/g++-5 -DCMAKE_MODULE_PATH=${PWD}/../external/install/share/llvm/cmake
Я получаю следующие предупреждения:
CMake Warning (dev):
Policy CMP0042 is not set: MACOSX_RPATH is enabled by default. Run "cmake
--help-policy CMP0042" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
MACOSX_RPATH is not specified for the following targets:
ClangWrapper
Structure
WCETXML
This warning is for project developers. Use -Wno-dev to suppress it.
CMakeLists.txt содержит следующие строки, относящиеся к RPATH:
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
IF("${isSystemDir}" STREQUAL "-1")
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
ENDIF("${isSystemDir}" STREQUAL "-1")
Все, что я могу сказать, это то, что ${CMAKE_INSTALL_PREFIX}/lib
действительно правильный путь и что другие библиотеки, такие как Boost, найдены правильно.
Игнорирование предупреждений и продолжение "make" в каталоге сборки приводит к ошибке привязки.
Я прочитал статью обработки ссылок CMake Wiki RPATH, но я все еще не могу различить эти переменные пути и их правильное использование в OS X.