Windows10下利用Visual Studio Code搭建C語言開發環境
1. 前言
Visual Studio Code搭建C語言的開發環境,網上有一大堆的教程,但是很多都要麼過時了,要麼就是不能運行,自己也踩了好幾個坑。
比較好的策略就是官網教程+B站+知乎,尤其是B站的教學視頻非常的多,播放量前幾的都是很良心的。本文最後也會給出相應的B站鏈接,感謝這些博主的貢獻。
2. 下載安裝VSCode以及MinGW
2.1 下載安裝VSCode
1.官網下載安裝符合自己操作系統的安裝包,我這裏安裝的是VSCodeSetup-x64-1.40.2 官網下載VSCode安裝包 Windows System Installer 64 bit
2. 一路點點點,需要注意一點,出現以下界面時注意把這些都勾上。
安裝成功後打開是這個界面:
2.2 下載安裝MinGW-w64
- 下載軟件,我這裏是下載的x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
- 解壓軟件,下載完成後解壓軟件,並把裏面的文件夾mingw64放到C盤的根目錄下。
- 添加mingw64裏面的bin文件夾到系統環境變量。
- 進入windows控制檯檢驗是否添加成功。
若成功則如下圖:
3. 添加VSCode的C語言開發插件
- Chinese (Simplified) Language Pack for Visual Studio Code插件,安裝了這個插件,VSCode就變爲中文界面了,對新手就友好多了。
- **C/C++**插件,寫C/C++的插件。
- Code Runner插件,一鍵運行C/C++/Python/Java等語言程序的插件。注意,這裏需要配置一下
配置擴展配置
,把run in terminal
勾選上。
- Material Theme插件,顯示不同的主題。
- C/C++ GNU Global插件。
- Material Icon Theme插件,更好的顯示各個文件的圖標,便於區分。
- C/C++ Compile Run插件。
- Prettier - Code formatter 插件,用於格式化文檔和代碼。
4. 配置C語言開發環境
另外要使用VSCode完成C語言開發環境的配置,需要配置三個文件。在電腦桌面新建一個C文件夾,然後在裏面新建以下兩個文件夾。注意:路徑裏面一定不能有中文出現。
然後再在.vscode
中新建以下三個文件。
文件內容見後文。
4.1 配置c_cpp_properties.json
{
"configurations": [
{
"name": "MinGW64",
"intelliSenseMode": "gcc-x64",
"compilerPath": "C:\\mingw64\\bin\\gcc.exe",
"includePath": [
"${workspaceFolder}"
],
"cStandard": "c11"
}
],
"version": 4
}
注意,這裏你需要把 "compilerPath": "C:\\mingw64\\bin\\gcc.exe"
換成你的安裝路徑,如果你和我一樣,默認就好。
4.2 配置launch.json文件
{
"version": "0.2.0",
"configurations": [
{
"name": "C Launch (GDB)", // 配置名稱,將會在啓動配置的下拉菜單中顯示
"type": "cppdbg", // 配置類型,這裏只能爲cppdbg
"request": "launch", // 請求配置類型,可以爲launch(啓動)或attach(附加)
"targetArchitecture": "x64", // 生成目標架構,一般爲x86或x64
"program": "${fileDirname}/build/${fileBasenameNoExtension}.exe", // 將要進行調試的程序的路徑
"args": [], // 程序調試時傳遞給程序的命令行參數,一般設爲空即可
"stopAtEntry": false, // 設爲true時程序將暫停在程序入口處,一般設置爲false
"cwd": "${workspaceRoot}", // 調試程序時的工作目錄,一般爲${workspaceRoot}
"externalConsole": true, // 調試時是否顯示控制檯窗口,一般設置爲true顯示控制檯
"internalConsoleOptions": "neverOpen", // 如果不設爲neverOpen,調試時會跳到“調試控制檯”選項卡",
"MIMode": "gdb", // 指定連接的調試器
"miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe", // 調試器路徑
"setupCommands": [
{
"description": "Enable pretty-printing for GDB",
"text": "-enable-pretty-printing",
"ignoreFailures": false
}
],
"preLaunchTask": "compile"
}
]
}
注意,這裏你需要把 "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe"
換成你的安裝路徑,如果你和我一樣,默認就好。
4.3 配置tasks.json文件
{
"version": "2.0.0",
"tasks": [
{
"label": "compile",
"command": "gcc",
"args": [
"${file}", // 指定編譯源代碼文件
"-o",
"${fileDirname}/build/${fileBasenameNoExtension}.exe", // 指定輸出文件名
"-O0", // 優化級別
"-ggdb3", // 生成和調試有關的信息
"-Wall", // 開啓額外警告
"-std=c11", // 使用c11標準
"-Wno-format",
"-finput-charset=UTF-8", //輸入編譯器文本編碼 默認爲UTF-8
"-fexec-charset=GB18030",
"-D _USE_MATH_DEFINES"
],
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always", // 在“終端”中顯示編譯信息的策略,可以爲always,silent,never
"focus": false,
"panel": "shared" // 不同的文件的編譯信息共享一個終端面板
},
}
]
}
5. 測試C語言開發環境
如圖:新建一個for_example.c
文件。可以按F5進行調試,或者直接右鍵run code。run code成功會輸出如圖所示。
#include <stdio.h>
#include <stdlib.h>
/* print Fahrenheit-Celsius table */
main()
{
int fahr;
for (fahr = 0; fahr <= 300; fahr = fahr + 20)
printf("%3d %6.1f \n", fahr, (5.0/9.0) * (fahr - 32));
system("pause");
}
6. 配置中遇到的坑
配置過程中會遇到各種各樣的問題,這時候需要多思考,去Google或者百度尋找答案。這裏我把自己遇到的坑總結一下。
- 路徑找不到的問題。1)查看是否添加環境變量成功;2)查看是否gcc.exe和gdb.exe文件的位置和三個配置文件是否對應;3)路徑中是否存在中文。
- 中文亂碼問題。因爲最新的VSCode默認用UTF-8編碼,所以一般問題不大,遇到了重新設置一下編碼就行。在VSCode界面的右下方點擊可以設置。
- 如果輸出的終端還是亂碼,這是時候很可能是因爲你的windows系統,默認終端是GBK2312編碼。
使用chcp
命令,查看cmd
的編碼設置,GBK2312
的代碼頁編號是936
;
改成utf-8
的編碼,utf-8對應的代碼頁編號是65001
執行chcp 65001
就可以把cmd的編碼設置成uft-8
。
這個方法的缺陷在於,只能保證這個cmd是’utf-8’,換成其他cmd就會變回GBK2312
。 - Debug過程中,遇到有中文名稱的路徑會導致調試失敗,這是mingw的gdb本身不支持中文路徑名造成的,如果你要用gdb調試的話就不能有中文字符出現在路徑名裏。
- VSCode 默認需要你去手動保存,否則不會保存,需要你一直 Crtl + S 很麻煩,尤其是測試代碼時,不保存,就不會運行修改後的代碼。方法是: 文件 --> 勾上自動保存,以及 文件 --> 首選項 --> 設置 --> 常用設置 --> files: Auto Save --> OnFucosChange(這裏可以自行選擇,我的這個是當編輯器失去焦點時自行保存)。自己也要多按保存,以防萬一。
7. 參考文獻
站在巨人的肩膀上,總能幫助我們更好的前行。作爲小白,VSCode的配置我也踩了很多坑,看了沒有能復現的博文,浪費了一些時間,這裏特別感謝以下幾個博主的教程。如果大家有什麼疑問,歡迎大家在博客下面留言交流,一起進步!
如果想和我一起交流學習,歡迎大家關注我的微信公衆號No Bug編程筆記
,通過掃描下方二維碼或者搜索NoBugNotes
關注。這個公衆號主要是分享和記錄自己學習編程的筆記,如:C – > Python – > Java等,後續還會分享自己面試以及職場上的成長心得。