前言:本文將教大家如何使用 VIsual Studio Code 搭建 C 語言開發環境,包括使用 VS Code 如何編譯和除錯 C 語言程式,需要 用到的工具有 Visual Studio Code 、MinGw-w64 ,
1. 安裝 C/C++ 插件
C/C++ 是由 Microsoft 發布的支持 C/C++ 智能提示和除錯等功能的插件,安裝步驟如下:
使用快捷鍵Ctrl + Shift + X呼出擴展面板
在搜索框中輸入:C/C++
再安裝由Microsoft提供的名為C/C++插件

2. 安裝 MinGW-w64 并配置好環境變數
首先下載 MinGW-w64點這里下載MinGW-w64 ,下載完成之后我們開始安裝 MinGw-w64,安裝路徑可以自由定義,我這里安裝路徑為D:\App\MinGW,安裝時需要設定的安裝選項如下:
Version :GCC 版本,直接選最高;
Architecture :CPU 架構,系統如果為64位,則選擇 x86_64;
Threads :API 模式,使用默認選項;
Exception :例外處理方式,seh 僅針對 64 位架構,sjlj 則兼容 32 位架構;
Build revision :修訂版本,使用默認選項;

安裝程序中需要聯網下載部分檔案,由于網路問題安裝失敗的,可以點這里下載免安裝版本,下載后直接解壓在你想安裝的檔案夾,
然后我們要在安裝路徑中找到 bin 檔案夾,通常在${MinGW-w64安裝位置}\mingw64\bin,以我的安裝路徑為例,bin 檔案夾位于D:\App\MinGW\mingw64\bin,
接下來,我們將剛付訓取的 bin 檔案夾的路徑添加到系統環境變數,
按 Win + R 鍵,打開運行視窗,,輸入 sysdm.cpl 并回車;
在彈出的 系統屬性 視窗,選擇 高級 選項卡;
在 高級 選項卡找到 環境變數 按鈕,單擊 環境變數 按鈕,打開 環境變數 視窗 ;
在 環境變數 視窗的 系統變數 區域找到 Path 變數 ,雙擊 Path 出現 編輯環境變數 視窗;
在 編輯環境變數 視窗點擊 新建,在新建的這行輸入我們剛付訓取的 bin 檔案夾的路徑,然后點確定,

3. 測驗環境變數是否配置正確
在命令列(win +R,輸入 cmd 回車打開命令列)輸入gcc –version,如果回傳的是已安裝的 gcc 的版本資訊,那么環境變數就配置正確了,
下面是在我的電腦上輸入gcc –version的結果,可以看到我安裝的版本為:gcc 7.3.0:
C:\Users\NowTime.CC>gcc --version
gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
4. 創建和設定 C 語言開發作業區
在你的計算機中選擇一個合適的位置,作為你的 C 語言開發作業區,建議作業區所在路徑僅由字母、數字、下劃線組成,不要包含其他的符號,例如空格,空格符號常常作為命令列中命令和引數的間隔符,如果路徑包含空格會導致編譯時出錯,我創建的作業區的路徑為:D:\Study\C\WorkSpace
由于
Windows 中文版命令列輸出字符是 GB2312 編碼的,而 VS Code 作業區默認是 UTF-8 ,這會導致你撰寫的 C
代碼編譯后在命令列執行并查看結果時中文會顯示亂碼,所以我們要單獨針對作業區進行設定字符編碼,保證程式輸出的字符也采用跟命令列一致的 GB2312
編碼,步驟如下:
使用 VS Code 打開你創建的作業區;
在 VS Code 左下角的設定按鈕進設定,再點擊 用戶設定 旁邊的 作業區設定 ;
在 作業區設定 中添加 "files.encoding":"gb2312"

5. 撰寫你的第一個 C 語言程式
在作業區新建一個 C 語言源檔案命名為 hello.c ,輸入以下內容:
#include <stdio.h>
#include <windows.h>
int main()
{
printf("hello world!/n");
system("pause");
}
6. 配置匯入的頭檔案引數 c_cpp_properties.json
在撰寫完畢并保存之后,你可能會看到 #include 這句下面會有綠色波浪線,這是由于編譯器沒辦法找到你所使用的頭檔案的所在位置,將游標移動到該行,行號左邊會出現黃色小燈泡,點擊會出現一個提示按鈕:Add include path to setting,繼續點擊該提示,則會在作業區.vscode下生成c_cpp_properties.json檔案,將檔案修改成下面內容:
留意帶注釋部分的內容,需要將路徑修改成你自己的安裝路徑哦,
{
"configurations": [{
"name": "MinGW",
"intelliSenseMode": "gcc-x64",
"compilerPath": "D:/App/MinGW/mingw64/bin/x86_64-w64-mingw32-gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"includePath": [
// 下面路徑中的 D:/App/MinGw 部分需要替換成你的 MinGw-w64 安裝路徑
"${workspaceFolder}/**",
"D:/App/MinGW/mingw64/x86_64-w64-mingw32/include",
"D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++",
"D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/tr1"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"__GNUC__=7",
"__cdecl=__attribute__((__cdecl__))"
],
"browse": {
"path": [
// 下面路徑中的 D:/App/MinGw 部分需要替換成你的 MinGw-w64 安裝路徑
"${workspaceFolder}/**",
"D:/App/MinGW/mingw64/x86_64-w64-mingw32/include",
"D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++",
"D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/tr1"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}],
"version": 4
}
7. 配置除錯程式 launch.json
打開已經撰寫好的 hello.c ,然后按F5除錯,因為是第一次除錯,系統會彈出選擇環境面板,這里選擇C++(GDB/LLDB),

選擇運行環境后,VS Code 會在作業區.vscode檔案夾下創建luanch.json模板檔案并打開,將檔案內容清空,復制下面的內容到檔案中并保存:
留意luanch.json中注釋內容,記得把“miDebuggerPath”引數修改成你自己安裝位置里的 gdb.exe
gdb.exe位于{MinGW-w64安裝位置}\mingw64\bin下面,
{
"version": "0.2.0",
"configurations": [{
// 配置 VS Code 除錯行為:
"name": "GDB Debug", // 設定在啟動配置下拉選單中顯示除錯配置的名稱,
"preLaunchTask": "Compile", // 除錯會話開始前要運行的任務,
"type": "cppdbg", // 設定要使用的基礎除錯器,使用 GDB 或 LLDB 時必須是 cppdbg ,
"request": "launch", // 設定啟動程式還是附加到已經運行的實體,啟動或附加 ( launch | attach ).
"program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 除錯器將啟動或附加的可執行檔案的完整路徑,
"externalConsole": true, // 設定是否顯示外部控制臺,
"logging": { // 用于確定應該將哪些型別的訊息記錄到除錯控制臺,
"exceptions": true, // 是否應將例外訊息記錄到除錯控制臺,默認為真,
"moduleLoad": false, // 是否應將模塊加載事件記錄到除錯控制臺,默認為真,
"programOutput": true, // 是否應將程式輸出記錄到除錯控制臺的可選標志,默認為真,
"engineLogging": false, // 是否應將診斷引擎日志記錄到除錯控制臺,默認為假,
"trace": false, // 是否將診斷配接器命令跟蹤記錄到除錯控制臺,默認為假,
"traceResponse": false // 是否將診斷配接器命令和回應跟蹤記錄到除錯控制臺,默認為假,
},
// 配置目標應用程式:
"args": [], // 設定除錯時傳遞給程式的命令列引數,
"cwd": "${workspaceFolder}", // 設定除錯器啟動的應用程式的作業目錄,
"environment": [], // 設定除錯時添加到程式環境中的環境變數,例如: [ { "name": "squid", "value": "clam" } ],
// 自定義 GDB 或者 LLDB:
"windows": {
"MIMode": "gdb", // 指定 VS Code 連接的除錯器,必須為 gdb 或者 lldb,
"miDebuggerPath": "D:/App/MinGW/mingw64/bin/gdb.exe" // 除錯器的路徑,修改為你的安裝路徑
},
"miDebuggerArgs": "", // 傳遞給除錯器的附加引數
"stopAtEntry": false, // 設定除錯器是否停止在目標的入口(附加時忽略),默認值為 false,
"setupCommands": [{ // 執行下面的命令陣列以設定 GDB 或 LLDB
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing", // 滑鼠懸停查看變數的值,需要啟用 pretty-printing ,
"ignoreFailures": true // 忽略失敗的命令,默認為 false ,
}]
}]
}
8. 配置除錯前執行的任務 task.json
再按一次F5,會彈出“找不到任務”的提示視窗,點擊配置任務按鈕,如下圖所示:

然后在彈出的命令面板選擇使用模板創建task.json檔案,如下圖所示:

繼續選擇Others 運行任意外部命令的示例,如下圖所示:

完成以上步驟之后,會在作業區的.vscode目錄下生成tasks.json檔案,并自動打開task.json檔案,

接下來我們將task.json檔案內容清空,復制下面的內容到檔案中并保存:
{
// 有關 tasks.json 格式的參考檔案:https://go.microsoft.com/fwlink/?LinkId=733558 ,
"version": "2.0.0",
"tasks": [{
"label": "Compile",
"type": "shell", // { shell | process }
// 適用于 Windows 的配置:
"windows": {
"command": "gcc",
"args": [
"-g",
"\"${file}\"",
"-o",
"\"${fileDirname}\\${fileBasenameNoExtension}.exe\""
// 設定編譯后的可執行檔案的字符集為 GB2312:
// "-fexec-charset", "GB2312"
// 直接設定命令列字符集為 utf-8:
// chcp 65001
]
},
// 定義此任務屬于的執行組:
"group": {
"kind": "build", // { build | test }
"isDefault": true // { true | false }
},
// 定義如何在用戶界面中處理任務輸出:
"presentation": {
// 控制是否顯示運行此任務的面板,默認值為 "always":
// - always: 總是在此任務執行時顯示終端,
// - never: 不要在此任務執行時顯示終端,
// - silent: 僅在任務沒有關聯問題匹配程式且在執行時發生錯誤時顯示終端
"reveal": "silent",
// 控制面板是否獲取焦點,默認值為 "false":
"focus": false,
// 控制是否將執行的命令顯示到面板中,默認值為“true”:
"echo": false,
// 控制是否在任務間共享面板,同一個任務使用相同面板還是每次運行時新創建一個面板:
// - shared: 終端被共享,其他任務運行的輸出被添加到同一個終端,
// - dedicated: 執行同一個任務,則使用同一個終端,執行不同任務,則使用不同終端,
// - new: 任務的每次執行都使用一個新的終端,
"panel": "dedicated"
},
// 使用問題匹配器處理任務輸出:
"problemMatcher": {
// 代碼內問題的所有者為 cpp 語言服務,
"owner": "cpp",
// 定義應如何解釋問題面板中報告的檔案名
"fileLocation": [
"relative",
"${workspaceFolder}"
],
// 在輸出中匹配問題的實際模式,
"pattern": {
// The regular expression.
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
// 第一個匹配組匹配檔案的相對檔案名:
"file": 1,
// 第二個匹配組匹配問題出現的行:
"line": 2,
// 第三個匹配組匹配問題出現的列:
"column": 3,
// 第四個匹配組匹配問題的嚴重性,如果忽略,所有問題都被捕獲為錯誤:
"severity": 4,
// 第五個匹配組匹配訊息:
"message": 5
}
}
}]
}
9. 完成,enjoy it!
到這里,C 開發環境就已經配置完畢,接下來我們在hello.c的編輯視窗按F5運行下,看下效果,

如果你還想再創建其他的 C 語言開發作業區,我們只需要新建一個檔案夾,再把現在已有作業區目錄下的 .vscode 檔案夾復制到新建的檔案夾即可,
如果覺得作者寫的好,有所識訓的話,點個關注,推薦一波,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/180379.html
標籤:C
上一篇:一個小白想建站,應該如何操作
