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"
}
]
}
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的配置我也踩了很多坑,看了沒有能復現的博文,浪費了一些時間,這里特別感謝以下幾個博主的教程。如果大家有什么疑問,歡迎大家在博客下面留言交流,一起進步!
后記:
我從本碩葯學零基礎轉行計算機,自學路上,走過很多彎路,也慶幸自己喜歡記筆記,把知識點進行總結,幫助自己成功實現轉行。
2020下半年進入職場,深感自己的不足,所以2021年給自己定了個計划,每日學一技,日積月累,厚積薄發。
如果你想和我一起交流學習,歡迎大家關注我的微信公眾號每日學一技
,掃描下方二維碼或者搜索每日學一技
關注。
這個公眾號主要是分享和記錄自己每日的技術學習,不定期整理子類分享,主要涉及 C – > Python – > Java,計算機基礎知識,機器學習,職場技能等,簡單說就是一句話,成長的見證!