VS Code 搭建C編譯和調試環境

安裝 C/C++ 插件

C/C++ 是由 Microsoft 發佈的支持 C/C++ 智能提示和調試等功能的插件,安裝步驟如下:

  • 使用快捷鍵 Ctrl+Shift+X 呼出擴展面板
  • 在搜索框中輸入:C/C++
  • 再安裝由 Microsoft 提供的名爲 C/C++ 插件。

 

2. 安裝 MinGW-w64 並配置好環境變量

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

 

安裝過程中需要聯網下載部分文件,由於網絡問題安裝失敗的(本地沒下載成功過),可以 點這裏下載 免安裝版本。下載後直接解壓在你想安裝的文件夾。

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

接下來,我們將剛剛獲取的 bin 文件夾的路徑添加到系統環境變量(自行百度過程)。

 

3. 測試環境變量是否配置正確

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

下面是在我的電腦上輸入 gcc --version 的結果,可以看到我安裝的版本爲: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.

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. 配置導入的頭文件參數 ccppproperties.json

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

{
    "configurations": [
        {
            "name": "Win32",
            "intelliSenseMode": "msvc-x64",
            "includePath": [
                "${workspaceFolder}",
                // 下面路徑中的 D:/App/MinGw 部分需要替換成你的 MinGw-w64 安裝路徑
                "D:/App/MinGW/mingw64/include",
                "D:/App/MinGW/mingw64/opt/include",
                "D:/App/MinGW/mingw64/opt/lib/libffi-3.2.1/include",
                "D:/App/MinGW/mingw64/x86_64-w64-mingw32/include",
                "D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include",
                "D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include-fixed",
                "D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/install-tools/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "__GNUC__=7",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "browse": {
                "path": [
                    "${workspaceFolder}",
                    // 下面路徑中的 D:/App/MinGw 部分需要替換成你的 MinGw-w64 安裝路徑
                    "D:/App/MinGW/mingw64/include",
                    "D:/App/MinGW/mingw64/opt/include",
                    "D:/App/MinGW/mingw64/opt/lib/libffi-3.2.1/include",
                    "D:/App/MinGW/mingw64/x86_64-w64-mingw32/include",
                    "D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include",
                    "D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include-fixed",
                    "D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/install-tools/include"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            },
            "cStandard": "c11",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}

留意帶註釋部分的內容,需要將路徑修改成你自己的安裝路徑哦。

7. 配置調試程序 launch.json

打開已經編寫好的 hello.c ,然後按 F5 調試。因爲是第一次調試,系統會彈出 選擇環境 面板,這裏選擇 C++(GDB/LLDB) 。

選擇運行環境後,VS Code 會在工作區 .vscode 文件夾下創建 luanch.json 模板文件並打開,將文件內容清空,複製下面的內容到文件中並保存:

{
    "version": "0.2.0", //配置版本
    "configurations": [
        {
            // 配置名稱,在啓動配置下拉菜單中顯示
            "name": "(gdb) Launch", 
            // 調試會話開始前要運行的任務
            "preLaunchTask": "build", 
            // 配置類型
            "type": "cppdbg", 
            // 請求配置類型,可以爲啓動(launch)或附加(attach)
            "request": "launch", 
            // 將要進行調試的程序的路徑
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe", 
            // 程序調試時傳遞給程序的命令行參數,一般設爲空即可
            "args": [], 
            // 設爲true時程序將暫停在程序入口處,一般設置爲false
            "stopAtEntry": false, 
            // 調試程序時的工作目錄,一般爲${workspaceFolder}即代碼所在目錄
            "cwd": "${workspaceFolder}", 
            "environment": [],
            // 調試時是否顯示控制檯窗口,一般設置爲true顯示控制檯
            "externalConsole": true, 
            "MIMode": "gdb",
            // GDB的路徑,注意替換成自己的位置中的 gdb
            "miDebuggerPath": "D:/App/MinGW/mingw64/bin/gdb.exe", 
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

留意 luanch.json 中的註釋內容,記得把 "miDebuggerPath" 參數修改成你自己安裝位置裏的 gdb.exe

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

8. 配置調試前執行的任務 task.json

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

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

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

完成以上步驟之後,會在工作區的 .vscode 目錄下生成 tasks.json 文件,並自動打開 task.json 文件。

接下來我們將 task.json 文件內容清空,複製下面的內容到文件中並保存:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            // 編譯參數 ggc -g ${file} -o ${fileDirname}${fileBasenameNoExtension}.exe
            "windows": {
                "command": "gcc",
                "args": [
                    "-g",
                    "\"${file}\"",
                    "-o",
                    "\"${fileDirname}\\${fileBasenameNoExtension}.exe\""
                ]
            },
            // 控制檯輸出的錯誤信息
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": [
                    "relative",
                    "." // ${workspaceFolder}
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            // 終端面板配置
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "shared" // 控制面板是否在任務中共享面板,shared=共享,new=新面板
            }
        }
    ]
}

9. 完成

到這裏,C 開發環境就已經配置完畢。接下來我們在 hello.c 的編輯窗口按 F5 運行下,看下效果。

如果你還想再創建其他的 C 語言開發工作區,我們只需要新建一個文件夾,再把現在已有工作區目錄下的 .vscode 文件夾複製到新建的文件夾即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章