windows下vscode使用cmake的方法
說在前頭:
- cmake的作用,是通過你的CMakeLists文件,根據你的工程自動幫你成makefile文件。優點是CMakeLists非常簡單好寫,makefile寫起來則比較復雜。
- 有瞭makefile文件,你就隻需要使用編譯器的make指令,便可以生成最終的可執行文件
- 不同的編譯器,所對應的makefile有差異,如mingw的,visual studio的等等,因此使用cmake前,應指明它的文件生成對象是什麼,在vscode裡面的用戶設置文件裡面應寫上這麼一行:
"cmake.generator": "MinGW Makefiles"
或者這樣:
"cmake.preferredGenerators": [ "MinGW Makefiles" ],
還有一個坑就是我安裝的mingw面沒有mingw32-make.exe ,然後點擊生成時,vscode老是報錯。。。
開始具體操作
需要進行一下3步:
- 在電腦上安裝cmake
- 在電腦上安裝mingw
- 在vscode裡面進行一點配置操作
安裝cmake
到cmake官網https://cmake.org/download/,下載最新的cmake,安裝即可,註意是下載可執行文件,不是源文件:
安裝完成後記得將bin路徑添加到系統環境變量,確保在命令行中呢個直接搜索使用到cmake指令。
安裝mingw
到mingw官網下載https://sourceforge.net/projects/mingw/,這個下載比較復雜,講究也特別多,我是直接拉到底,下載已經配置好的安裝包,並沒有使用它的安裝程序。
至於每個包代表的意思(參考的這位博主Mingw-w64在win10下的安裝使用)如下(建議使用x86_64-win32-sjlj):
- 64位系統選擇x86_64,32位系統選擇i686;
- Threads設置線程標準可選posix或win32;
- Exception設置異常處理系統,x86_64可選為seh和sjlj,i686為dwarf和sjlj;
安裝完成後還是將它的安裝路徑裡面的bin文件夾路徑添加到系統環境變量中,確保在命令行中能檢測得到gcc,g++,mingw32-make
在vscode裡面進行相關配置
- 安裝插件CMake,CMake tools ,C/C++,C++ Intellisense
- 先整好自己的C++配置文件 確保語法提示什麼的都有大概如下:
"configurations": [ { "name": "win64", "includePath": [ "${workspaceFolder}/**", "${workspaceRoot}/Inc/", "D:/OpenCV3/build/include" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "windowsSdkVersion": "8.1", "compilerPath": "C:/MySolfware/MinGW/bin/g++.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-64", "configurationProvider": "ms-vscode.cmake-tools" } ]
主要是設置好那個”includePath”和”compilerPath”,根據自己的mingw路徑去設置,其次這裡要選擇win64:
然後在設置裡面的cmake configuration 那寫好自己的cmake路徑,確保vscode能找到我們的cmake。
最後如前面所說,需要在設置文件裡寫上:"cmake.generator": "MinGW Makefiles"
所有配置完成 開始跑程序
新建一個文件夾,準備搞上自己的程序,我的文件夾文件分佈大概是這樣的:
CMakeLists 內容大概是這樣的:
# 最低CMake版本要求 cmake_minimum_required(VERSION 3.10.0) # 項目名稱 project(main) # 設置C/C++標準 set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 頭文件路徑 include_directories("Inc" "D:/OpenCV3/build/include") # 枚舉頭文件 file(GLOB_RECURSE INCLUDES "Inc/*.h" "Inc/*.hpp") # 指定引用的外部庫的搜索路徑 LINK_DIRECTORIES("D:/OpenCV3/mingw/install/x86/mingw/lib") # 枚舉源文件 aux_source_directory("Src" SOURCES) # 輸出路徑 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) # 生成可執行的文件 add_executable(${PROJECT_NAME} ${SOURCES} ${INCLUDES}) # 鏈接 TARGET_LINK_LIBRARIES(${PROJECT_NAME} libopencv_highgui310.dll.a libopencv_core310.dll.a libopencv_calib3d310.dll.a libopencv_features2d310.dll.a libopencv_flann310.dll.a libopencv_imgcodecs310.dll.a libopencv_ml310.dll.a libopencv_objdetect310.dll.a libopencv_photo310.dll.a libopencv_shape310.dll.a libopencv_stitching310.dll.a libopencv_superres310.dll.a libopencv_video310.dll.a libopencv_videostab310.dll.a libopencv_imgproc310.dll.a libopencv_videoio310.dll.a )
接下來就是寫程序,然後選定工具包kit,然後點擊生成全部即可。。
到此這篇關於windows下vscode使用cmake的方法的文章就介紹到這瞭,更多相關vscode使用cmake內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- vscode和cmake編譯多個C++文件的實現方法
- CMake的簡單應用
- AndroidStudio集成OpenCV的實現教程
- Clion(CMake工具)中引入第三方庫的詳細方法
- 用VScode編寫C++大型項目的方法步驟