cmake 生成 visual studio 工程
阿新 • • 發佈:2022-03-05
目錄
說明
由於個人工作關係,一直使用Qt作為上位機主要開發框架,Python作為輔助手段,快速驗證功能,編寫一些測試程式碼。近期有編譯 MSVC 動態庫的需求,就折騰了一下 visual studio,用起來十分不習慣。學習過程中發現 CMake 可以生成 visual studio ,學習了一下,記錄與此。
開發環境搭建
- cmake 本文豬腳
- visual studio 社群版 安裝時需要選擇帶C++的環境
- vscode 程式碼編輯器+強大的外掛系統
上面三個軟體安裝完成以後,啟動vscode,安裝以下外掛
- C/C++
- CMake
- CMake Tools
CMakeLists.txt
CMake 是使用 CMakeLists.txt 來管理構建檔案的,以下是一個簡單的檔案用來指示
# cmake 最低版本要求 cmake_minimum_required(VERSION 2.18) # 設定變數 set(OUT_DIR ${PROJECT_SOURCE_DIR}/out) # 設定變數 set(TARGET_NAME ZaykKey) # 新增巨集定義 add_definitions(-D_CRT_SECURE_NO_WARNINGS) # 定義工程,對應 visual studio 裡的 .sln project(${TARGET_NAME}) # 新增目錄下的原始檔到變數中 aux_source_directory(${PROJECT_SOURCE_DIR}/src SRCS) aux_source_directory(${PROJECT_SOURCE_DIR}/src/algo SRCS) aux_source_directory(${PROJECT_SOURCE_DIR}/src/platform/windows SRCS) # ================================================================== # 生成動態庫 add_library(${TARGET_NAME} SHARED ${SRCS} src/zaykkey.def) # 修改 .def 檔案的屬性 set_source_files_properties(zaykkey.def PROPERTIES HEADER_FILE_ONLY TRUE) # 新增連結庫,系統庫可以直接輸入名字,第三方庫需要指定路徑 target_link_libraries(${TARGET_NAME} hid.lib) target_link_libraries(${TARGET_NAME} setupapi.lib) # ================================================================== # 生成可執行程式 add_executable(interface_test test/main.c) # 新增連結庫 target_link_libraries(interface_test ${PROJECT_SOURCE_DIR}/out/ZaykKey.lib) # 以下兩條註釋掉,不起作用 # target_link_libraries(interface_test hid.lib) # target_link_libraries(interface_test setupapi.lib) # ================================================================== # 設定動態庫和靜態庫的輸出路徑 set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/out) # 設定可執行檔案的輸出路徑 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/out)
更新歷史
2022-3-5
第一次釋出