軟件名稱 | 軟件版本 |
---|---|
Linux操作系統(tǒng) | Ubuntu 22.04 LTS(X64) |
cmake | 3.22.1 |
前面我們創(chuàng)建了自己的庫坐儿,也構(gòu)建了一個可執(zhí)行文件對庫進行測試迫像,本小節(jié)將介紹如何把庫文件漾月、頭文件敞恋、可執(zhí)行文件分別安裝到指定的目錄虑鼎,這里要用到CMake的install命令,相關介紹可以參考這里刃永。
這里假設:我們的安裝目錄是/home/install/货矮,我們把libmylib.a安裝到/home/install/lib下,把mylib.h安裝到/home/install/include下斯够,把main可執(zhí)行文件安裝到/home/install/bin下囚玫。
指定安裝目錄前綴,可以使用cmake --install . --prefix "/path/to/install/"
來指定读规,或通設置CMake變量CMAKE_INSTALL_PREFIX抓督。本例子使用第二種方式,設置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) # 設置可執(zhí)行目標文件的輸出目錄
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output) # 設置靜態(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)分別安裝到指定的目錄枪汪。