0
我有一些可執行文件,它取決於在源文件中設置相對路徑的配置文件。cmake:在安裝過程中如何保留路徑庫
可執行文件鏈接到在同一項目中創建的庫。
我希望能夠實現的目標是在安裝後讓可執行文件開箱即用,即安裝會將可執行文件,配置文件和庫複製到適當的位置,並將可執行文件鏈接到庫。
我暫時什麼:
install(TARGETS ${test_executables} ${PROJECT_NAME}
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/plot"
DESTINATION .)
$ {} PROJECT_NAME是圖書館,情節是其中的配置文件的文件夾。
安裝後會發生什麼情況,即所有文件都位於安裝文件夾的正確位置,但可執行文件未找到該庫。
PS:
我嘗試過補充一點:
set(CMAKE_SKIP_BUILD_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) # tried also with TRUE
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
但這並沒有工作
'ldd'的輸出是什麼? –
Tsyvarev
@Tsyvarev「libamd_clmc_dmp.so =>未找到」,amd_clmc_dmp是在包中編譯的庫 – Vince
Hmm,變量[CMAKE_INSTALL_RPATH](https://cmake.org/cmake/help/v3.0/variable/CMAKE_INSTALL_RPATH.html )在目標創建時**僅影響[INSTALL_RPATH](https://cmake.org/cmake/help/v3.0/prop_tgt/INSTALL_RPATH.html)屬性**。在**'add_executable()'調用之前,您是否設置了'CMAKE_INSTALL_RPATH'變量**? – Tsyvarev