windows下vscode使用cmake的方法
說在前頭:
- cmake的作用,是通過你的CMakeLists文件,根據(jù)你的工程自動(dòng)幫你成makefile文件。優(yōu)點(diǎn)是CMakeLists非常簡(jiǎn)單好寫,makefile寫起來則比較復(fù)雜。
- 有了makefile文件,你就只需要使用編譯器的make指令,便可以生成最終的可執(zhí)行文件
- 不同的編譯器,所對(duì)應(yīng)的makefile有差異,如mingw的,visual studio的等等,因此使用cmake前,應(yīng)指明它的文件生成對(duì)象是什么,在vscode里面的用戶設(shè)置文件里面應(yīng)寫上這么一行:
"cmake.generator": "MinGW Makefiles"
或者這樣:
"cmake.preferredGenerators": [ "MinGW Makefiles" ],
還有一個(gè)坑就是我安裝的mingw面沒有mingw32-make.exe ,然后點(diǎn)擊生成時(shí),vscode老是報(bào)錯(cuò)。。。
開始具體操作
需要進(jìn)行一下3步:
- 在電腦上安裝cmake
- 在電腦上安裝mingw
- 在vscode里面進(jìn)行一點(diǎn)配置操作
安裝cmake
到cmake官網(wǎng)https://cmake.org/download/,下載最新的cmake,安裝即可,注意是下載可執(zhí)行文件,不是源文件:
安裝完成后記得將bin路徑添加到系統(tǒng)環(huán)境變量,確保在命令行中呢個(gè)直接搜索使用到cmake指令。
安裝mingw
到mingw官網(wǎng)下載https://sourceforge.net/projects/mingw/,這個(gè)下載比較復(fù)雜,講究也特別多,我是直接拉到底,下載已經(jīng)配置好的安裝包,并沒有使用它的安裝程序。
至于每個(gè)包代表的意思(參考的這位博主Mingw-w64在win10下的安裝使用)如下(建議使用x86_64-win32-sjlj):
- 64位系統(tǒng)選擇x86_64,32位系統(tǒng)選擇i686;
- Threads設(shè)置線程標(biāo)準(zhǔn)可選posix或win32;
- Exception設(shè)置異常處理系統(tǒng),x86_64可選為seh和sjlj,i686為dwarf和sjlj;
安裝完成后還是將它的安裝路徑里面的bin文件夾路徑添加到系統(tǒng)環(huán)境變量中,確保在命令行中能檢測(cè)得到gcc,g++,mingw32-make
在vscode里面進(jìn)行相關(guān)配置
- 安裝插件CMake,CMake tools ,C/C++,C++ Intellisense
- 先整好自己的C++配置文件 確保語(yǔ)法提示什么的都有大概如下:
"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" } ]
主要是設(shè)置好那個(gè)"includePath"和"compilerPath",根據(jù)自己的mingw路徑去設(shè)置,其次這里要選擇win64:
然后在設(shè)置里面的cmake configuration 那寫好自己的cmake路徑,確保vscode能找到我們的cmake。
最后如前面所說,需要在設(shè)置文件里寫上:"cmake.generator": "MinGW Makefiles"
所有配置完成 開始跑程序
新建一個(gè)文件夾,準(zhǔn)備搞上自己的程序,我的文件夾文件分布大概是這樣的:
CMakeLists 內(nèi)容大概是這樣的:
# 最低CMake版本要求 cmake_minimum_required(VERSION 3.10.0) # 項(xiàng)目名稱 project(main) # 設(shè)置C/C++標(biāo)準(zhǔn) 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") # 指定引用的外部庫(kù)的搜索路徑 LINK_DIRECTORIES("D:/OpenCV3/mingw/install/x86/mingw/lib") # 枚舉源文件 aux_source_directory("Src" SOURCES) # 輸出路徑 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) # 生成可執(zhí)行的文件 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,然后點(diǎn)擊生成全部即可。。
到此這篇關(guān)于windows下vscode使用cmake的方法的文章就介紹到這了,更多相關(guān)vscode使用cmake內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++編寫LINUX守護(hù)進(jìn)程的實(shí)現(xiàn)代碼
這篇文章主要介紹了如何使用C++實(shí)現(xiàn)LINUX守護(hù)進(jìn)程,文中代碼非常詳細(xì),供大家學(xué)習(xí)參考,感興趣的小伙伴可以了解下2020-06-06C++實(shí)現(xiàn)LeetCode(61.旋轉(zhuǎn)鏈表)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(61.旋轉(zhuǎn)鏈表),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C++日期與時(shí)間 chrono庫(kù)介紹及使用教程
chrono庫(kù)是C++11中的一個(gè)標(biāo)準(zhǔn)庫(kù),它提供了一系列與時(shí)間相關(guān)的類和函數(shù),用于表示和處理時(shí)間間隔,時(shí)鐘和時(shí)間點(diǎn),C++20新增Calendar,這篇文章主要介紹了C++日期與時(shí)間 chrono庫(kù)介紹及使用,需要的朋友可以參考下2023-12-12C語(yǔ)言實(shí)現(xiàn)通用數(shù)據(jù)結(jié)構(gòu)之通用椎棧
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)通用數(shù)據(jù)結(jié)構(gòu)之通用椎棧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11