博客專欄

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

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

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

        cmake 輸出路徑

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


        1.設置可執行文件的輸出路徑:


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


        2.靜態庫 lib 輸出路徑:


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


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


        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版本下可執行文件的后綴名


        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.可執行文件名,通過指定的源文件列表構建出可執行目標文件:


        ADD_EXECUTABLE

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

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

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

        LIBRARY, ARCHIVE, RUNTIME, PUBLIC_HEADER是可選的,可以根據需要進行選擇。 DESTINATION后面的路徑可以自行制定,根目錄默認為CMAKE_INSTALL_PREFIX,可以試用set方法進行指定,如果使用默認值的話,Unix系統的默認值為 /usr/local, Windows的默認值為 c:/Program Files/${PROJECT_NAME}。比如字linux系統下若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:重新定義目標二進制可執行文件的存放位置
         
        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用于指定在安裝時運行的規則。它可以用來安裝很多內容,可以包括目標二進制、動態庫、靜態庫以及文件、目錄、腳本等:

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

        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)

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

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


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

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


        關鍵詞: cmake

        技術專區

        關閉
        主站蜘蛛池模板: 陆河县| 桓仁| 泽普县| 湛江市| 钟山县| 项城市| 遂川县| 吉木萨尔县| 盖州市| 望都县| 郑州市| 田东县| 西盟| 闻喜县| 丽水市| 蓝田县| 库尔勒市| 余姚市| 霞浦县| 宜阳县| 江达县| 延川县| 贵定县| 望谟县| 青神县| 九寨沟县| 富民县| 崇左市| 宜城市| 大余县| 平阳县| 新源县| 自治县| 昌邑市| 乌什县| 合川市| 辽中县| 郸城县| 阿鲁科尔沁旗| 米脂县| 扎兰屯市|