Skip to content
Go back
Table of Contents

VSCode C++ 配置指南

說在前面

儘管Visual Studio非常適合給初學者入門學習編譯調試單個文件和編寫代碼, 但是卻不是很適合編寫大型項目, 尤其不能使人理解編譯的過程, 不利於學習編寫多文件工程.

Vscode是一款容易上手(當然是比VIM容易)且插件生態豐富的GUI文本編輯器, 經過得當的折騰配置完全可以替代IDE進行開發, 而且配置過程也可以加深對編譯鏈接過程的理解

0.基礎配置

本部分涉及插件: Chinese(simplified) — 簡體中文語言包 Project Manager — 管理工作區 Catppuccin for VSCode — 配色主題,夾帶私貨 Catppuccin Icons for VSCode — 圖標主題,夾帶私貨

安裝之後打開裸的Vscode先進行漢化, 點擊上述連接可以跳轉到Vscode應用市場相關的頁面, 根據指示安裝漢化插件後重啟Vscode.

使用相同的方法(或直接在Vscode內置的插件市場)安裝Project-Manager, 這個插件可以迅速切換工作區, 而不必再右鍵用Vscode打開工作區.

工作區切換

到此基本上就能夠高效的切換工作區編輯文件了.

我的Vscode配色方案是Catppuccin for VSCode, 圖標主題是Catppuccin Icons for VSCode, 包括neovim在內的很多地方我都使用這樣的配色, 畢竟誰會拒絕一個耐看的編輯器呢?

VSCode展示

NVIM展示

1.編譯環境

在windows下推薦使用的編譯器是MinGW64, 它是GCC系列在windows下的移植, 優化和特性支持都很到位, 對於初學者來說更適合接觸. 相比之下, MSVC會遜色一些, 常常給出一些不合時宜的警告(比如忽略printf和scanf的返回值).

安裝步驟:

  • 從上述的網站下載MingW的安裝程序, 安裝位置不重要, 但需要記下安裝的位置.

  • 在設置中搜索環境變量設置, 並將安裝目錄下的bin目錄添加到環境變量中

系統設置搜索環境變量, 可以得到這個窗口

編輯"系統變量"中的Path就是添加環境變量窗口

  • Win+R打開cmd, 輸入gcc --versiong++ --version如果出現版本信息, 就說明已經成功安裝並能添加進環境變量

LLVM系列的編譯器clang也是不錯的選擇, 可以點擊前面的鏈接下載安裝包

Linux下推薦使用gcc/g++和clang/clang++. 一般直接用包管理器就能直接裝上並直接加進環境變量.

2.單文件調試

本部分涉及的插件: clangd — 語法高亮, 補全, code lldb — 圖形化調試器,

安裝插件之後應該就能直接看到C++源文件中的語法高亮和補全了. 不過需要注意的是, 這個插件和vscode自己推薦的C++三件套有衝突, 在裝之前需要將它卸載(如果裝了的話).

推薦clangd的原因是反應速度更快, 語法檢查和代碼補全準確性高, 尤其是在處理大量複雜C++代碼時, 它支持較新版本的C++特性, 也能提供基於語義的語法高亮, 看起來更友善, 而且比微軟的Intelligence更輕量. CodeLLDB也是一個輕量的調試器, 易於配置(只需要兩個json文件就能製作一個簡易的單文件工程調試環境)

clangd標註函數參數列表和結構體成員

下面是調試器的配置, 安裝CodeLLDB之後需要新建一個文件夾作為工作區, 在工作區內配置調試環境. 在工作區內新建.vscode文件夾, 並新建launch.jsontasks.json, 這兩個文件前者用於配置調試啟動參數, 後者配置編譯參數.

  • launch.json示例
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",   // 調試器, 可以選擇gdb.
            "request": "launch", // 以launch的方式發起調試會話
            "name": "Debug",
            "program": "${workspaceFolder}/exec/${fileBasenameNoExtension}", // 需要調試的可執行文件
            "args": [], // 調試器的啟動參數
            "cwd": "${workspaceFolder}", // 工作目錄
            "preLaunchTask": "clang-compile-debug" // 進行調試操作之前需要進行的操作, 即編譯
        }
    ]
}
  • tasks.json示例

下面的配置使得編譯器對當前文件進行編譯, 並生成特定名稱的可執行文件(如a.cc生成<項目根目錄>/exec/a這個可執行文件)

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "process",
            "label": "clang-compile-debug",
            "command": "/usr/bin/clang++", //編譯器可執行文件路徑
            "args": [ // 編譯器參數
                "-g",
                "${fileBasename}", // 需要編譯的文件(即當前文件)
                "-o",
                "${workspaceFolder}/exec/${fileBasenameNoExtension}" // 編譯輸出的文件
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            }
        }
    ]
}

完成這兩個文件的設定之後就可以進行 愉快的 調試了, 編輯並保存源文件後按下F5就能直接進行編譯調試