我對CMake
相對較新,我開發了一個小型項目,它構建了一個鏈接到共享庫的庫,名爲external_library
。我CMakeLists.txt
文件看起來是這樣的:cmake:「make install」不會鏈接到Ubuntu中的庫
cmake_minimum_required(VERSION 2.8.12)
project(project_name)
include_directories(path_to_external_library_source_code)
add_subdirectory(path_to_external_library_header_files subproject/external_library)
target_link_libraries(project_name external_library)
install(TARGETS project_name DESTINATION installation_path)
當我建項目(使用make
),它完美的作品,並正確創建的鏈接(我與ldd
命令檢查的話)。但是,當我嘗試安裝它時(使用make install
),安裝路徑中生成的文件未鏈接到指定的共享庫。
再次使用ldd
我已檢查共享庫未在安裝路徑中生成的庫中找到,儘管它在構建路徑中生成的庫中找到。我怎麼能解決這個問題?
謝謝。
Pd:我在Ubuntu 16.04.2 LTS
中使用CMake 3.5.1
。
你覺得'add_subdirectory(path_to_external_library_header_files subproject/external_library)'做了什麼? 'path_to_external_library_header_files'中是否有CMakeLists.txt文件?你爲什麼試圖把外部圖書館作爲一部分的工作項目? – kdopen
是的,在'path_to_external_library_header_files'中有'CMakeLists.txt',它將共享庫的'.cpp'和'.h'文件添加到項目中。 – GLR
我想讓共享庫成爲創建的庫的一部分,這就是爲什麼我使用'add_subdirectory'(我希望我做的是正確的)。 – GLR