博客專欄

EEPW首頁 > 博客 > CMake 輸出路徑的設置 ,當前目錄,安裝拷貝

CMake 輸出路徑的設置 ,當前目錄,安裝拷貝

發(fā)布人:電子禪石 時間:2022-11-28 來源:工程師 發(fā)布文章

cmake 輸出路徑

cmake 輸出路徑通常需要設置一下,這里記錄一下:


1.設置可執(zhí)行文件的輸出路徑:


SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)


2.靜態(tài)庫 lib 輸出路徑:


set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin)


3.動態(tài)庫輸出路徑(注意這個放在最后):


SET_TARGET_PROPERTIES(dllname PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../bin)


4.上面兩條語句分別設置了Debug版本和Release版本下庫文件的后綴名


set(CMAKE_DEBUG_POSTFIX "_d")    set(CMAKE_RELEASE_POSTFIX "_r") 


5.設置了Debug版本和Release版本下可執(zhí)行文件的后綴名


set_target_properties(${TARGET_NAME} PROPERTIES DEBUG_POSTFIX "_d")     set_target_properties(${TARGET_NAME} PROPERTIES RELEASE_POSTFIX "_r")


6.設置項目名稱:


PROJECT( name )


7.設置鏈接庫名稱:


target_link_libraries


例:target_link_libraries(

                     DealWithMould

             ${VTK_LIBRARIES}

             )


target_link_libraries(myProject hello) 

7.可執(zhí)行文件名,通過指定的源文件列表構(gòu)建出可執(zhí)行目標文件:


ADD_EXECUTABLE

ADD_EXECUTABLE(main main.cpp context.cpp patten.cpp patten.hpp )

8. 為生成的target配置安裝目錄

install(TARGETS MyLib
        EXPORT MyLibTargets 
        LIBRARY DESTINATION lib  # 動態(tài)庫安裝路徑
        ARCHIVE DESTINATION lib  # 靜態(tài)庫安裝路徑
        RUNTIME DESTINATION bin  # 可執(zhí)行文件安裝路徑
        PUBLIC_HEADER DESTINATION include  # 頭文件安裝路徑
        )

LIBRARY, ARCHIVE, RUNTIME, PUBLIC_HEADER是可選的,可以根據(jù)需要進行選擇。 DESTINATION后面的路徑可以自行制定,根目錄默認為CMAKE_INSTALL_PREFIX,可以試用set方法進行指定,如果使用默認值的話,Unix系統(tǒng)的默認值為 /usr/local, Windows的默認值為 c:/Program Files/${PROJECT_NAME}。比如字linux系統(tǒng)下若LIBRARY的安裝路徑指定為lib,即為/usr/local/lib。所以要安裝mymath mymathapp我們可以這樣寫

————————————————

當前目錄
PROJECT_SOURCE_DIR:工程的根目錄
 
PROJECT_BINARY_DIR:運行cmake命令的目錄,通常為${PROJECT_SOURCE_DIR}/build
 
PROJECT_NAME:返回通過 project 命令定義的項目名稱
 
CMAKE_CURRENT_SOURCE_DIR:當前處理的 CMakeLists.txt 所在的路徑
 
CMAKE_CURRENT_BINARY_DIR:target 編譯目錄
 
CMAKE_CURRENT_LIST_DIR:CMakeLists.txt 的完整路徑
 
EXECUTABLE_OUTPUT_PATH:重新定義目標二進制可執(zhí)行文件的存放位置
 
LIBRARY_OUTPUT_PATH:重新定義目標鏈接庫文件的存放位置
安裝拷貝
#設置變量
set(OPENCV_DLL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/deps/OpenCV/bin)
# 設置輸出目錄
set(OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../CMakeProjectTestDebug/")
set(EXECUTABLE_OUTPUT_PATH "${OUTPUT_PATH}/bin/")
set(LIBRARY_OUTPUT_PATH "${OUTPUT_PATH}/lib/")   
# 拷貝文件到exe所在的目錄
# 1 拷貝文件夾里的文件
file(COPY ${OPENCV_DLL_DIR}/ DESTINATION ${EXECUTABLE_OUTPUT_PATH})
# 2 拷貝bin文件
file(COPY ${OPENCV_DLL_DIR} DESTINATION ${EXECUTABLE_OUTPUT_PATH})

file(COPY /opt/fs/lib/libfs.so DESTINATION lib libfs.so)


將所有符號鏈接和libfoo.so.1.2.3本身安裝到lib中

也可以使用安裝代替拷貝


install


install用于指定在安裝時運行的規(guī)則。它可以用來安裝很多內(nèi)容,可以包括目標二進制、動態(tài)庫、靜態(tài)庫以及文件、目錄、腳本等:

————————————————

install(TARGETS <target>... [...])
install({FILES | PROGRAMS} <file>... [...])
install(DIRECTORY <dir>... [...])
install(SCRIPT <file> [...])
install(CODE <code> [...])
install(EXPORT <export-name> [...])

一般復制或文件夾

install(DIRECTORY ${PROJECT_BINARY_DIR}/bin DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)

//將生成的文件夾下內(nèi)容全部拷貝到,指定目標目錄;

原文鏈接:https://blog.csdn.net/q610098308/article/details/121157418


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。

射頻卡相關文章:射頻卡原理


關鍵詞: cmake

技術(shù)專區(qū)

關閉