CMake 輸出路徑的設(shè)置 ,當(dāng)前目錄,安裝拷貝
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> [...])
原文鏈接: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)文章:射頻卡原理