VSCode上搭建C/C++開發環境(vscode配置c/c++環境)Windows系統---保姆級教程

引言+勸退

VSCode,全稱為Visual Studio Code,是由微軟開發的一款輕量級,跨平臺的代碼編輯器。大家能來搜用VSCode配置c/c++,想必也知道VSCode的強大,可以手握一個VSCode同時編寫如C,C++,C#,Java,python等等語言的代碼。得益于在VSCode上可以下載很多不同種類的插件,可以給vscode添加很多擴展功能,如代碼高亮美化,代碼補全和代碼檢查等。

在今天的內容開始之前,我想先勸退一波。

如果你是剛剛接觸編程或是使用計算機并不熟練,我強烈建議:

不要碰VSCode!!!

不要碰VSCode!!!

不要碰VSCode!!!

VSCode的環境配置和文件操作相比于直接下載集成開發環境,對于初學者實在是一種災難。

要學習C/C++,可以去下一個Visual Studio,如果嫌占內存太大,不寫什么大工程,可以去下一個Dev-C++

要寫Java,去找IntelliJ IDEA

要寫python,去找pycharm

總之,初學者建議先熟悉下計算機和編程再來搞VSCode,當初還是小白的我弄了個VSCode的就開始配環境,后期一大堆非程序問題搞得不得不下個集成的環境再學。

能看到這里,說明你已經下定了學習如何在VSCode上寫C/C++代碼的決心,那么現在就開始我們的內容吧!

VSCode的下載和安裝

下載vscode直接去搜就可以,這里我附上一個下載鏈接吧

Visual Studio Code - Code Editing. Redefined

75d4e6dfe50842a6a81b6526c7fc8bff.jpeg

這里根據自己的電腦系統選擇,我的電腦是windows系統,選擇stable版

應用商城里面自帶的vscode其實也是可下的

下好之后,我們打開安裝包,開始安裝

edf94d4a89ef41c6a3f3c055758578b4.jpeg

這里下一步其實沒什么可說的,路徑那里放到哪都無所謂

下面這個界面注意一下,都選上

d84a18cd9e8d4320acb45555e5df3546.jpeg

最后就是安裝完成了

在打開VSCode之后,你會發現,里面都是英文,那是因為你還沒安裝中文插件

f821dbc1bc194a06b0409098e081318a.png

在組件里,搜索Chinese,下載最上面那個

右下角會彈出這樣一個框

aed9c8296f874f7bbe2c2f2e1c9b32c5.jpeg

當你點Restart重啟后就已經是熟悉的中文啦!

VSCode配置C/C++開發環境

安裝MinGW

VSCode安裝好之后,我們還是要了解到,VSCode畢竟是一個高級的編輯器,只能用來寫C/C++代碼,不能直接編譯代碼。所以,如果我們要能使用VSCode搭建C/C++的編譯和調試環境,還必須要有編譯器。為了方便,我們使用MinGW-w64,MinGW-w64是移植到windows平臺的一個gcc編譯器,用起來很方便。

下載MinGW-w64的話,下面是下載地址

MinGW下載地址

978e44aab69d43a7aff9a7af94037add.png

在這個界面,不要直接點下載,先往下拖動,建議下載這個

3fc6b2fd7e5b4f5a9f26f915f1399a1c.png

點擊之后,正常情況下,就應該開始正常下載了。

MinGW-w64下載好之后,需要先解壓縮

021bba8f8a684116b88cd87628ab7ef4.png

最后會解壓出一個文件夾,建議將文件夾放到一個容易管理的地方,這里我放到C盤的根目錄下

C:\mingw64

592a4d39e3b34566b906f2f50810708f.png

配置MinGw

在windows電腦上,按win+s快捷鍵,或者直接在搜索框中搜:環境變量,就可以看到:

3a41008af81b49d7b09af88f76d98243.png

點擊環境變量

e3e54e37515043eda6cbb21fff47362d.jpeg

找到系統變量中path路徑,點擊打開

5b7b50c4fa90426dabbf0f371efe81de.jpeg

在最后添加上C:\mingw64\bin (放在了不同的路徑,只要保證最后是\mingw64\bin就行)這個路徑

39c3191581b44431b31dc956d54c8ff3.jpeg

最后連續點擊確定三次層層退出

這樣mingw編譯器套件基本上就配好了

接下來,我們需要安裝一個C/C++插件

我們直接搜索c/c++,選擇最上面那個直接安裝上就行

55401828ece84d02a5a3463ebd6b6468.png

安裝完之后,重啟一下,VSCode配置C/C++環境這一塊的工作就算徹底完成。

在VSCode上編寫C/C++代碼并編譯成功

VSCode上寫代碼首先需要打開文件夾,這樣也可以方便管理代碼和編譯器產生的可執行程序和VSCode生成的配置文件(總之就是很有好處)。在寫代碼前,先要考慮好把代碼放在什么地方管理。

這里我創建一個名字叫test_vscode的文件夾,在我的C根目錄當中

我們要保證創建的文件夾中的路徑是沒有中文名的,不然后續會有一系列問題,就比如調試莫名報錯之類

用中文名調試時的報錯(其中馬賽克位置是中文):

5a657461dc5c40afb76e7b213cfb8777.png

fd33f0c79b3d4a86b61796ec280f6dea.png

用VSCode打開此文件夾

f61e91d1801d4465b4fe73d10997555e.png

e5b19bff44654b4eb9f1d86605edb1aa.png

然后文件夾就被順利打開了?

編寫C/C++代碼

1db7f3ddbbf74f6db8edb59495f767c6.png

編譯當前代單個文件代碼

在我們編譯代碼前需要創建下圖黃框內的兩個文件

94108f4b4ad74fed9e31608b92c1e7c3.png

第一個文件的創建方式,在中間搜索框打>,然后找C/C++編譯配置

bc1933ca0f6b40839efac68b01f4d9a1.png

這里進到這樣一個界面

0ceea35b80454298912cd896e1367331.png

這里選擇編譯器路徑

35d57aa83a4f40758af154f5f58baeeb.png

再次根據圖片選擇

9abb1a71b18345d6a1ae05d0c9eee829.png

這時關閉這個界面就會發現,下面這些已經在不知不覺間生成了

e270948990a64068a133483a4ea1395f.png

//c_cpp_properties.json
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.22621.0","compilerPath": "C:/mingw64/bin/gcc.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "gcc-x64"},{"name": "C++","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.22621.0","compilerPath": "C:/mingw64/bin/g++.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}

這份c_cpp_properties.json其實也不用自己創建,把我的直接復制粘貼過去也行 ,這個對C/C++都適用

這時我們來創建第二個文件tasks.json

在代碼文件下選擇終端里的配置任務

c19fdc5ec52142c6a619ec037706472d.png

6abd83291d53429aaefc6c207b4f7a4a.png

在做出選擇之后,第二個文件就配置完畢了,現在我們來編譯一下代碼

在終端中選擇運行生成任務

36a499db70fc4e7daf5f37321afdd9be.png

這里的gcc和g++怎么選不用我說了吧

cd0580953a3542aca2402c8aeea9b1af.png

選擇之后,你會發現在test.c下面多了一個可執行文件test.exe

002abc27586b47e299a2c328c8e69bdf.png

此時 Ctrl + `

同時終端中輸入.\test.exe運行代碼回車就開始運行了

78b9654b35774313ac41895a9471d4a0.png

同樣的方式也可以編寫c++代碼

唯一要注意的是,C++在創建第一個文件時,建議改一下配置名稱,如果復制粘貼了我的第一個文件就不用管了

97885a5eb5f243678dea945e04978bb2.png

點擊確定,然后其他正常生成文件

e89a3781f43d43518cca72d7e7cb18e7.png

編譯多個文件代碼

這里需要改一下.vscode中tasks.json文件的一些內容

圖中我標了注釋的地方就是需要改動的地方,然后這是改動后的文件

f986cc9c7ffc4ec4baed36f0aad10817.png

//tasks.json
{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: g++.exe 生成活動文件","command": "C:\\mingw64\\bin\\g++.exe","args": ["-fdiagnostics-color=always","-g","${workspaceFolder}/*",  //${file}"-o","${workspaceFolder}\\${workspaceRootFolderName}.exe"  //${fileDirname}\\${fileBasenameNoExtension}.exe],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": "build","detail": "編譯器: \"C:\\mingw64\\bin\\g++.exe\""}]
}
//test.cpp
#include<iostream>
#include"add.h"
using namespace std;int main()
{int a = 10;int b = 15;int c = Add(a,b);cout << a<< " " << b << endl;cout << c;return 0;
}
//add.h
#pragma
int Add(int x,int y);
//add.cpp
#include"add.h"int Add(int x,int y)
{return x + y;
}

最后編譯器將文件夾所有文件都編譯鏈接生成一個以文件夾命名的 .exe 文件?

23ec3376c0cb4e72874e293a43ab934b.png

aea2b92f5502479d9ac28d1499a22416.png

下面是運行?

9ed15d0b9a0e4a5e8cf71344a15159fc.png

VSCode的調試

調試這里另外需要一個文件,launch.json文件

創建launch.json文件

dfd0c180111f4a718ea15b61d3c121dc.png

點擊之后會彈出一個窗口選擇,這里我們一定要選擇C++(GDB/LLDB)

32f8a40dfa8c487484af984f8157707f.png

這時就會生成一個launch.json文件,這時候文件里幾乎什么都沒有,我們點擊右下角的添加配置

0fe981ed3d7a4317a961dabce28bc5f6.png

選擇第三個gdb啟動

38a93fbfa8e4409eb95c0d9962c496f9.png

其中,下面標出的這兩個位置是需要修改的

73bc7657b60d479eb246727264cb8237.jpeg

下面是修改后的文件?

{// 使用 IntelliSense 了解相關屬性。 // 懸停以查看現有屬性的描述。// 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) 啟動","type": "cppdbg","request": "launch","program": "${workspaceFolder}\\${workspaceRootFolderName}.exe",  //輸入程序名稱(也就是需要調試的文件),例如 ${workspaceFolder}/a.exe"args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe",  //調試的工具(mingw,bin中有gdb)   /path/to/gdb"setupCommands": [{"description": "為 gdb 啟用整齊打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "將反匯編風格設置為 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]}]
}

調試運行?

修改之后,進行編譯,生成一份test_vscode.exe之后就可以開始調試

此時我們就可以直接按 F5 開始調試,F9打斷點,F10逐過程(遇到函數當成一條語句跳過),F11逐語句(遇到函數跳轉到函數內部按語句一步步走)

e807f8d0e0244ac4a02e37e5835d5be9.png

結語

?關于VSCode上搭建C/C++開發環境的內容,到這里就結束了,這里博主感嘆一下,VSCode真的挺強大的,作為一個編輯器,可以通過和編譯器鏈接成為開發環境,將環境配置好的話,在這上面寫代碼似乎也是個不錯的選擇。大家有任何疑問,歡迎在評論區中提出,本篇博客有任何問題和錯誤也歡迎來和博主討論,真心希望能和大家一起進步。最后,如果本篇博客對你有幫助的話,能不能給博主一個三連啊!感謝大家的支持?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712268.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712268.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712268.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微服務day02-Ribbon負載均衡與Nacos安裝與入門

一.Ribbon負載均衡 在上一節中&#xff0c;我們通過在RestTemplte實例中加上了注解 LoadBalanced,表示將來由RestTemplate發起的請求會被Ribbon攔截和處理&#xff0c;實現了訪問服務時的負載均衡&#xff0c;那么他是如何實現的呢&#xff1f; 1.1 Ribbon負載均衡的原理 Rib…

鏈表的歸并排序-LeetCode(Python版)

雙指針歸并排序&#xff01;圖解排序鏈表&#xff01;-知乎 class ListNode(object):def __init__(self, val0, nextNone):self.val valself.next nextclass Solution(object):def find_mid(self, head): # 快慢指針slow, fast head, headwhile fast.next and fast.next.n…

linux 硬盤存儲剩余容量自動化監控+報警通知

linux 硬盤存儲剩余容量自動化監控報警通知 編寫shell腳本 #!/bin/bash# 獲取系統存儲大小&#xff08;單位為GB&#xff09; storage_size$(df -h / | awk NR2 {print $4} | sed s/G//)# 閾值&#xff08;小于10GB觸發報警&#xff09; threshold10# 釘釘機器人 Webhook UR…

LabVIEW非接觸式電阻抗層析成像系統

LabVIEW非接觸式電阻抗層析成像系統 非接觸式電阻抗層析成像&#xff08;NEIT&#xff09;技術以其無輻射、非接觸、響應速度快的特點&#xff0c;為實時監測提供了新的解決方案。基于LabVIEW的電阻抗層析成像系統&#xff0c;實現了數據的在線采集及實時成像&#xff0c;提高…

代碼隨想錄算法訓練營第四十四天|139.單詞拆分、56.攜帶礦石資源

139.單詞拆分 思路&#xff1a;將字符串s看作為背包容量&#xff0c;從字符串中獲取物品&#xff0c;剛好滿足背包容量的過程&#xff0c;因為可以從字符串中多次取值&#xff0c;相當于物品的數量是不限制&#xff0c;這就是一個完全背包的問題&#xff01;這個題有個關鍵點&a…

Python中的windows路徑問題

在Python中處理Windows路徑時,經常會遇到一些特殊的問題。這主要是因為Windows和大多數其他操作系統(如Linux和macOS)使用不同的路徑分隔符。在Windows中,路徑使用反斜杠(\)作為分隔符,而在其他操作系統中,路徑使用正斜杠(/)作為分隔符。 以下是在Python中處理Windo…

Java SE:多線程(Thread)

1. 線程兩個基本概念 并發&#xff1a;即線程交替運行多個指令并行&#xff1a;即多個線程同時運行指令 并發并行不矛盾&#xff0c;兩者可同時發生&#xff0c;即多個線程交替運行指令 2. 多線程3種實現方式 2.1 直接創建線程對象 /*** 方式1&#xff1a;* 1. 創建thread類的…

mybatis plus 深入學習 【Base Mapper】的方法 【IService】的方法

mybatis plus 深入學習 常見注解 1.TableName 描述&#xff1a;表名注解&#xff0c;標識實體類對應的表使用位置&#xff1a;實體類 TableName("sys_user") public class User {private Long id;private String name;private Integer age;private String email;…

【Linux系統化學習】信號的保存

目錄 阻塞信號 信號處理常見方式概覽 信號的其他相關概念 在內核中的表示 sigset_t 信號集操作函數 sigprocmask函數 sigpending函數 信號的捕捉 內核如何實現信號的捕捉 sigaction函數 可重入函數 volatile 阻塞信號 信號處理常見方式概覽 當信號來臨時&#x…

c++算法入門教程(2)

C是一種功能強大且廣泛應用的編程語言&#xff0c;對于想要深入學習編程和算法的人來說&#xff0c;掌握C是一個重要的里程碑。本文將帶你逐步了解C編程的基礎知識&#xff0c;并介紹一些常見的算法和編程技巧幫你入門c算法。 ?在c算法入門教程(1) 中&#xff0c;我講解了什么…

GEE:使用Sigmoid激活函數對單波段圖像進行變換(以NDVI為例)

作者:CSDN @ _養樂多_ 本文將介紹在 Google Earth Engine (GEE)平臺上,對任意單波段影像進行 Sigmoid 變換的代碼。并以對 NDVI 影像像素值的變換為例。 文章目錄 一、Sigmoid激活函數1.1 什么是 Sigmoid 激活函數1.2 用到遙感圖像上有什么用?二、代碼鏈接三、完整代碼一…

查詢每個會話使用內存大小(DM8達夢數據庫)

DM8達夢數據庫查詢每個會話使用內存大小 1 環境介紹2 查詢每個sql會話使用內存大小3 達夢數據庫學習使用列表 1 環境介紹 在某些環境數據庫內存增長到服務器內存用完,發生OOM事件,可以分析sql會話使用內存大小; 2 查詢每個sql會話使用內存大小 --創建SQL會話占用內存記錄表 …

共享棧的C語言實現

共享棧&#xff1a;所謂共享棧就是為了節省空間&#xff0c;讓兩個棧共享一片連續的存儲空間&#xff0c;兩個棧從這片連續的共享空間的兩端向中間擴充自己的存儲空間&#xff0c;設這片存儲空間的大小為maxSize&#xff0c;采用棧頂指針始終指向當前棧頂元素的方式來實現共享棧…

簡單認識算法的復雜度

時間復雜度與空間復雜度 1.算法的復雜度 ? 算法在編寫成可執行程序后&#xff0c;運行時需要耗費時間資源和空間(內存)資源 。因此衡量一個算法的好壞&#xff0c;一般是從時間和空間兩個維度來衡量的&#xff0c;即時間復雜度和空間復雜度。 ? 時間復雜度主要衡量一個算法…

MYSQL02高級_目錄結構、默認數據庫、表文件、系統獨立表空間

文章目錄 ①. MySQL目錄結構②. 查看默認數據庫③. MYSQL5.7和8表文件③. 系統、獨立表空間 ①. MySQL目錄結構 ①. 如何查看關聯mysql目錄 [rootmysql8 ~]# find / -name mysql /var/lib/mysql /var/lib/mysql/mysql /etc/selinux/targeted/tmp/modules/100/mysql /etc/seli…

前端src中圖片img標簽資源的幾種寫法?

在 Vue 項目中引用圖片路徑有幾種不同的方法&#xff0c;具體取決于你的項目結構和配置。以下是幾種常見的方式&#xff1a; 1. 靜態資源目錄 (Public) 如果你的圖片放在了項目的 public 目錄下&#xff08;例如&#xff0c;Vite 和 Create Vue App 腳手架工具通常使用這個目…

05 OpenCV圖像混合技術

文章目錄 理論算子示例 理論 其中 的取值范圍為0~1之間 算子 addWeighted CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2, double beta,double gamma, OutputArray dst, int dtype -1 ); 參數1&#xff1a;輸入圖像Mat …

2024年【廣東省安全員A證第四批(主要負責人)】考試試卷及廣東省安全員A證第四批(主要負責人)作業模擬考試

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 廣東省安全員A證第四批&#xff08;主要負責人&#xff09;考試試卷根據新廣東省安全員A證第四批&#xff08;主要負責人&#xff09;考試大綱要求&#xff0c;安全生產模擬考試一點通將廣東省安全員A證第四批&#x…

釘釘機器人發送折線圖卡片 工具類代碼

釘釘機器人 “創建并投放卡片 接口 ” 可以 發送折線圖、柱狀圖 官方文檔&#xff1a;創建并投放卡片 - 釘釘開放平臺 0依賴、1模板、2機器人放到內部應用、3放開這個權限 、4工具類、5調用工具類 拼接入參 卡片模板 自己看文檔創建&#xff0c;卡片模板的id 有用 0、依賴…

Springboot項目中定時任務的四種實現方式

文章目錄 1. 使用Scheduled注解1.1 時間間隔執行1.2 固定時間點執行 2. 使用EnableScheduling注解啟用定時任務3. 實現SchedulingConfigurer接口4. 使用Quartz框架4.1 配置QuartzScheduler4.2 定義Job類和Trigger類 5. 總結 在開發現代應用時&#xff0c;定時任務是一個非常常見…