使用 Visual Studio Code 搭建 C/C++ 開發(fā)和調(diào)試環(huán)境

      網(wǎng)友投稿 1482 2025-04-04

      文章目錄

      1. 安裝 C/C++ 插件

      2. 安裝 MinGW-w64 并配置好環(huán)境變量

      3. 測試環(huán)境變量是否配置正確

      4. 創(chuàng)建和設(shè)置 C 語言開發(fā)工作區(qū)

      5. 編寫你的第一個 C 語言程序

      6. 配置導(dǎo)入的頭文件參數(shù) c_cpp_properties.json

      7. 配置調(diào)試程序 launch.json

      8. 配置調(diào)試前執(zhí)行的任務(wù) task.json

      9. 完成

      1. 安裝 C/C++ 插件

      C/C++ 是由 Microsoft 發(fā)布的支持 C/C++ 智能提示和調(diào)試等功能的插件,安裝步驟如下:

      使用快捷鍵 Ctrl + Shift + X 呼出擴展面板

      在搜索框中輸入:C/C++

      再安裝由 Microsoft 提供的名為 C/C++ 插件。

      2. 安裝 MinGW-w64 并配置好環(huán)境變量

      首先下載 MinGW-w64 點這里下載 MinGW-w64 。下載完成之后我們開始安裝 MinGw-w64,安裝路徑可以自由定義,我這里安裝路徑為 D:\App\MinGW 。安裝時需要設(shè)置的安裝選項如下:

      Version :GCC 版本,直接選最高;

      Architecture :CPU 架構(gòu),系統(tǒng)如果為64位,則選擇 x86_64;

      Threads :API 模式,使用默認選項;

      Exception :異常處理方式,seh 僅針對 64 位架構(gòu),sjlj 則兼容 32 位架構(gòu);

      Build revision :修訂版本,使用默認選項;

      安裝過程中需要聯(lián)網(wǎng)下載部分文件,由于網(wǎng)絡(luò)問題安裝失敗的,可以 點這里下載 免安裝版本。下載后直接解壓在你想安裝的文件夾。

      然后我們要在安裝路徑中找到 bin 文件夾,通常在 ${MinGW-w64安裝位置}\mingw64\bin ,以我的安裝路徑為例,bin 文件夾位于 D:\App\MinGW\mingw64\bin 。

      接下來,我們將剛剛獲取的 bin 文件夾的路徑添加到系統(tǒng)環(huán)境變量。

      按 Win + R 鍵,打開運行窗口,,輸入 sysdm.cpl 并回車;

      在彈出的 系統(tǒng)屬性 窗口,選擇 高級 選項卡;

      在 高級 選項卡找到 環(huán)境變量 按鈕,單擊 環(huán)境變量 按鈕,打開 環(huán)境變量 窗口 ;

      在 環(huán)境變量 窗口的 系統(tǒng)變量 區(qū)域找到 Path 變量 ,雙擊 Path 出現(xiàn) 編輯環(huán)境變量 窗口;

      在 編輯環(huán)境變量 窗口點擊 新建,在新建的這行輸入我們剛剛獲取的 bin 文件夾的路徑,然后點確定。

      3. 測試環(huán)境變量是否配置正確

      在命令行輸入 gcc --version,如果返回的是已安裝的 gcc 的版本信息,那么環(huán)境變量就配置正確了。

      下面是在我的電腦上輸入 gcc --version 的結(jié)果,可以看到我安裝的版本為:gcc 7.3.0

      PS C:\Users\Jason> gcc --version gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 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.

      1

      2

      3

      使用 Visual Studio Code 搭建 C/C++ 開發(fā)和調(diào)試環(huán)境

      4

      5

      4. 創(chuàng)建和設(shè)置 C 語言開發(fā)工作區(qū)

      在你的計算機中選擇一個合適的位置,作為你的 C 語言開發(fā)工作區(qū)。建議工作區(qū)所在路徑僅由字母、數(shù)字、下劃線組成,不要包含其他的符號。例如空格,空格符號常常作為命令行中命令和參數(shù)的間隔符,如果路徑包含空格會導(dǎo)致編譯時出錯。我創(chuàng)建的工作區(qū)的路徑為:D:\Study\C\WorkSpace

      由于 Windows 中文版命令行輸出字符是 GB2312 編碼的,而 VS Code 工作區(qū)默認是 UTF-8 ,這會導(dǎo)致你編寫的 C 代碼編譯后在命令行執(zhí)行并查看結(jié)果時中文會顯示亂碼,所以我們要單獨針對工作區(qū)進行設(shè)置字符編碼,保證程序輸出的字符也采用跟命令行一致的 GB2312 編碼,步驟如下:

      使用 VS Code 打開你創(chuàng)建的工作區(qū);

      在 VS Code 左下角的設(shè)置按鈕進設(shè)置,再點擊 用戶設(shè)置 旁邊的 工作區(qū)設(shè)置 ;

      在 工作區(qū)設(shè)置 中添加 "files.encoding":"gb2312"

      5. 編寫你的第一個 C 語言程序

      在工作區(qū)新建一個 C 語言源文件命名為 hello.c ,輸入以下內(nèi)容:

      #include #include int main() { printf("hello world!/n"); system("pause"); }

      1

      2

      3

      4

      5

      6

      7

      6. 配置導(dǎo)入的頭文件參數(shù) c_cpp_properties.json

      在編寫完畢并保存之后,你可能會看到 #include 這句下面會有綠色波浪線,這是由于編譯器沒辦法找到你所使用的頭文件的所在位置。將光標(biāo)移動到該行,行號左邊會出現(xiàn) 黃色小燈泡 ,點擊會出現(xiàn)一個提示按鈕:Add include path to setting ,繼續(xù)點擊該提示,則會在工作區(qū) .vscode 下生成 c_cpp_properties.json 文件。將文件修改成下面內(nèi)容:

      { "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 }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      留意帶注釋部分的內(nèi)容,需要將路徑修改成你自己的安裝路徑哦。

      7. 配置調(diào)試程序 launch.json

      打開已經(jīng)編寫好的 hello.c ,然后按 F5 調(diào)試。因為是第一次調(diào)試,系統(tǒng)會彈出 選擇環(huán)境 面板,這里選擇 C++(GDB/LLDB) 。

      選擇運行環(huán)境后,VS Code 會在工作區(qū).vscode 文件夾下創(chuàng)建 luanch.json 模板文件并打開,將文件內(nèi)容清空,復(fù)制下面的內(nèi)容到文件中并保存:

      { "version": "0.2.0", "configurations": [{ // 配置 VS Code 調(diào)試行為: "name": "GDB Debug", // 設(shè)置在啟動配置下拉菜單中顯示調(diào)試配置的名稱。 "preLaunchTask": "Compile", // 調(diào)試會話開始前要運行的任務(wù)。 "type": "cppdbg", // 設(shè)置要使用的基礎(chǔ)調(diào)試器。使用 GDB 或 LLDB 時必須是 cppdbg 。 "request": "launch", // 設(shè)置啟動程序還是附加到已經(jīng)運行的實例。啟動或附加 ( launch | attach ). "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 調(diào)試器將啟動或附加的可執(zhí)行文件的完整路徑。 "externalConsole": true, // 設(shè)置是否顯示外部控制臺。 "logging": { // 用于確定應(yīng)該將哪些類型的消息記錄到調(diào)試控制臺。 "exceptions": true, // 是否應(yīng)將異常消息記錄到調(diào)試控制臺。默認為真。 "moduleLoad": false, // 是否應(yīng)將模塊加載事件記錄到調(diào)試控制臺。默認為真。 "programOutput": true, // 是否應(yīng)將程序輸出記錄到調(diào)試控制臺的可選標(biāo)志。默認為真。 "engineLogging": false, // 是否應(yīng)將診斷引擎日志記錄到調(diào)試控制臺。默認為假。 "trace": false, // 是否將診斷適配器命令跟蹤記錄到調(diào)試控制臺。默認為假。 "traceResponse": false // 是否將診斷適配器命令和響應(yīng)跟蹤記錄到調(diào)試控制臺。默認為假。 }, // 配置目標(biāo)應(yīng)用程序: "args": [], // 設(shè)置調(diào)試時傳遞給程序的命令行參數(shù)。 "cwd": "${workspaceFolder}", // 設(shè)置調(diào)試器啟動的應(yīng)用程序的工作目錄。 "environment": [], // 設(shè)置調(diào)試時添加到程序環(huán)境中的環(huán)境變量,例如: [ { "name": "squid", "value": "clam" } ]。 // 自定義 GDB 或者 LLDB: "windows": { "MIMode": "gdb", // 指定 VS Code 連接的調(diào)試器,必須為 gdb 或者 lldb。 "miDebuggerPath": "D:/App/MinGW/mingw64/bin/gdb.exe" // 調(diào)試器的路徑,修改為你的安裝路徑 }, "miDebuggerArgs": "", // 傳遞給調(diào)試器的附加參數(shù) "stopAtEntry": false, // 設(shè)置調(diào)試器是否停止在目標(biāo)的入口(附加時忽略)。默認值為 false。 "setupCommands": [{ // 執(zhí)行下面的命令數(shù)組以設(shè)置 GDB 或 LLDB "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", // 鼠標(biāo)懸停查看變量的值,需要啟用 pretty-printing 。 "ignoreFailures": true // 忽略失敗的命令,默認為 false 。 }] }] }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      留意luanch.json中的注釋內(nèi)容,記得把 “miDebuggerPath” 參數(shù)修改成你自己安裝位置里的 gdb.exe

      gdb.exe 位于 {MinGW-w64安裝位置}\mingw64\bin下面。

      8. 配置調(diào)試前執(zhí)行的任務(wù) task.json

      再按一次 F5 ,會彈出“找不到任務(wù)”的提示窗口,點擊 配置任務(wù) 按鈕,如下圖所示:

      然后在彈出的命令面板選擇 使用模板創(chuàng)建 task.json 文件 ,如下圖所示:

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

      完成以上步驟之后,會在工作區(qū)的 .vscode 目錄下生成 tasks.json 文件,并自動打開 task.json 文件。

      接下來我們將 task.json 文件內(nèi)容清空,復(fù)制下面的內(nèi)容到文件中并保存:

      { // 有關(guān) 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\"" // 設(shè)置編譯后的可執(zhí)行文件的字符集為 GB2312: // "-fexec-charset", "GB2312" // 直接設(shè)置命令行字符集為 utf-8: // chcp 65001 ] }, // 定義此任務(wù)屬于的執(zhí)行組: "group": { "kind": "build", // { build | test } "isDefault": true // { true | false } }, // 定義如何在用戶界面中處理任務(wù)輸出: "presentation": { // 控制是否顯示運行此任務(wù)的面板。默認值為 "always": // - always: 總是在此任務(wù)執(zhí)行時顯示終端。 // - never: 不要在此任務(wù)執(zhí)行時顯示終端。 // - silent: 僅在任務(wù)沒有關(guān)聯(lián)問題匹配程序且在執(zhí)行時發(fā)生錯誤時顯示終端 "reveal": "silent", // 控制面板是否獲取焦點。默認值為 "false": "focus": false, // 控制是否將執(zhí)行的命令顯示到面板中。默認值為“true”: "echo": false, // 控制是否在任務(wù)間共享面板。同一個任務(wù)使用相同面板還是每次運行時新創(chuàng)建一個面板: // - shared: 終端被共享,其他任務(wù)運行的輸出被添加到同一個終端。 // - dedicated: 執(zhí)行同一個任務(wù),則使用同一個終端,執(zhí)行不同任務(wù),則使用不同終端。 // - new: 任務(wù)的每次執(zhí)行都使用一個新的終端。 "panel": "dedicated" }, // 使用問題匹配器處理任務(wù)輸出: "problemMatcher": { // 代碼內(nèi)問題的所有者為 cpp 語言服務(wù)。 "owner": "cpp", // 定義應(yīng)如何解釋問題面板中報告的文件名 "fileLocation": [ "relative", "${workspaceFolder}" ], // 在輸出中匹配問題的實際模式。 "pattern": { // The regular expression. "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", // 第一個匹配組匹配文件的相對文件名: "file": 1, // 第二個匹配組匹配問題出現(xiàn)的行: "line": 2, // 第三個匹配組匹配問題出現(xiàn)的列: "column": 3, // 第四個匹配組匹配問題的嚴(yán)重性,如果忽略,所有問題都被捕獲為錯誤: "severity": 4, // 第五個匹配組匹配消息: "message": 5 } } }] }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      9. 完成

      到這里,C 開發(fā)環(huán)境就已經(jīng)配置完畢。接下來我們在 hello.c 的編輯窗口按 F5 運行下,看下效果。

      如果你還想再創(chuàng)建其他的 C 語言開發(fā)工作區(qū),我們只需要新建一個文件夾,再把現(xiàn)在已有工作區(qū)目錄下的 .vscode 文件夾復(fù)制到新建的文件夾即可。最終發(fā)現(xiàn),對于工程中存在多文件的形勢支持不太友好。

      點擊閱讀原文

      C++ Visual Studio

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:如何制作文字動畫(文字動畫制作教程)
      下一篇:不能夠復(fù)制粘貼(只能粘貼不能復(fù)制)
      相關(guān)文章
      亚洲欧洲日韩极速播放| 亚洲人成在线播放| 亚洲AV无码之国产精品| 亚洲一区二区三区深夜天堂| 久久精品国产精品亚洲毛片| 久久亚洲私人国产精品| 亚洲午夜免费视频| 亚洲精品成人av在线| 亚洲精品国产精品乱码不卡√| 国产中文在线亚洲精品官网| 亚洲av综合日韩| 国产亚洲精品2021自在线| 亚洲AV无码一区二区一二区| 亚洲一级免费毛片| 亚洲国产精品专区| 久久久国产精品亚洲一区| 亚洲AV无码成人精品区天堂| 国产亚洲情侣一区二区无码AV| 亚洲精品国产成人影院| 欧洲亚洲综合一区二区三区| 亚洲日韩精品国产一区二区三区| 亚洲一区AV无码少妇电影| 亚洲AV无码成人精品区在线观看| 自拍偷自拍亚洲精品第1页| 国产综合激情在线亚洲第一页| 亚洲人成77777在线观看网| 亚洲国产精品成人精品无码区| 91麻豆精品国产自产在线观看亚洲| www.91亚洲| 亚洲国产精品人人做人人爱| 国产精品亚洲AV三区| 亚洲精品国产suv一区88| 中文字幕在线日亚洲9| 亚洲伊人精品综合在合线| 亚洲乱码在线卡一卡二卡新区| 亚洲w码欧洲s码免费| 亚洲中字慕日产2020| 亚洲中文字幕无码久久2020 | 亚洲色偷偷偷鲁综合| 中文字幕亚洲激情| 亚洲男人的天堂在线va拉文|