CMake實踐:安裝自己的庫

軟件名稱 軟件版本
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 ..、makemake install之后,可以發(fā)現(xiàn)三個文件已經(jīng)分別安裝到指定的目錄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容