| 軟件名稱 | 軟件版本 |
|---|---|
| Linux操作系統(tǒng) | Ubuntu 22.04 LTS(X64) |
| cmake | 3.22.1 |
前面我們創(chuàng)建了自己的庫,也構(gòu)建了一個可執(zhí)行文件對庫進行測試,本小節(jié)將介紹如何把庫文件、頭文件、可執(zhí)行文件分別安裝到指定的目錄,這里要用到CMake的install命令,相關(guān)介紹可以參考這里。
這里假設(shè):我們的安裝目錄是/home/install/,我們把libmylib.a安裝到/home/install/lib下,把mylib.h安裝到/home/install/include下,把main可執(zhí)行文件安裝到/home/install/bin下。
指定安裝目錄前綴,可以使用cmake --install . --prefix "/path/to/install/"來指定,或通設(shè)置CMake變量CMAKE_INSTALL_PREFIX。本例子使用第二種方式,設(shè)置CMAKE_INSTALL_PREFIX變量為/home/install/。
example/CMakeLists.txt文件內(nèi)容:
cmake_minimum_required(VERSION 3.22)
project(example)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output) # 設(shè)置可執(zhí)行目標(biāo)文件的輸出目錄
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output) # 設(shè)置靜態(tài)庫文件的輸出目錄
add_subdirectory(src)
add_subdirectory(lib)
target_link_libraries(main mylib)
if (DEBUG)
target_compile_definitions(mylib PRIVATE DEBUG_INFO)
endif()
set(CMAKE_INSTALL_PREFIX /home/install/)
install(TARGETS main DESTINATION bin)
install(TARGETS mylib DESTINATION lib)
install(FILES lib/mylib.h DESTINATION include)
進入example/build目錄執(zhí)行cmake ..、make和make install之后,可以發(fā)現(xiàn)三個文件已經(jīng)分別安裝到指定的目錄。