色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁(yè) > 博客 > CMake 輸出路徑的設(shè)置 ,當(dāng)前目錄,安裝拷貝

          CMake 輸出路徑的設(shè)置 ,當(dāng)前目錄,安裝拷貝

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

          cmake 輸出路徑

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


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


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


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


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


          3.動(dòng)態(tài)庫(kù)輸出路徑(注意這個(gè)放在最后):


          SET_TARGET_PROPERTIES(dllname PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../bin)


          4.上面兩條語(yǔ)句分別設(shè)置了Debug版本和Release版本下庫(kù)文件的后綴名


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


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


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


          6.設(shè)置項(xiàng)目名稱:


          PROJECT( name )


          7.設(shè)置鏈接庫(kù)名稱:


          target_link_libraries


          例:target_link_libraries(

                               DealWithMould

                       ${VTK_LIBRARIES}

                       )


          target_link_libraries(myProject hello) 

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


          ADD_EXECUTABLE

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

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

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

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

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

          當(dāng)前目錄
          PROJECT_SOURCE_DIR:工程的根目錄
           
          PROJECT_BINARY_DIR:運(yùn)行cmake命令的目錄,通常為${PROJECT_SOURCE_DIR}/build
           
          PROJECT_NAME:返回通過(guò) project 命令定義的項(xiàng)目名稱
           
          CMAKE_CURRENT_SOURCE_DIR:當(dāng)前處理的 CMakeLists.txt 所在的路徑
           
          CMAKE_CURRENT_BINARY_DIR:target 編譯目錄
           
          CMAKE_CURRENT_LIST_DIR:CMakeLists.txt 的完整路徑
           
          EXECUTABLE_OUTPUT_PATH:重新定義目標(biāo)二進(jìn)制可執(zhí)行文件的存放位置
           
          LIBRARY_OUTPUT_PATH:重新定義目標(biāo)鏈接庫(kù)文件的存放位置
          安裝拷貝
          #設(shè)置變量
          set(OPENCV_DLL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/deps/OpenCV/bin)
          # 設(shè)置輸出目錄
          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)


          將所有符號(hào)鏈接和libfoo.so.1.2.3本身安裝到lib中

          也可以使用安裝代替拷貝


          install


          install用于指定在安裝時(shí)運(yùn)行的規(guī)則。它可以用來(lái)安裝很多內(nèi)容,可以包括目標(biāo)二進(jìn)制、動(dòng)態(tài)庫(kù)、靜態(tài)庫(kù)以及文件、目錄、腳本等:

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

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

          一般復(fù)制或文件夾

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

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

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


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

          射頻卡相關(guān)文章:射頻卡原理


          關(guān)鍵詞: cmake

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

          關(guān)閉