C/C++ 在編輯環境的建立上是相對複雜的語言,我們習慣使用功能強大的 IDE 來幫我們把瑣碎的雜事給包裝起來,例如:函式庫連結、編譯任務、Debug 等等,不過有時我們並不希望安裝過多肥大的 IDE 在電腦上,更多的時候我們希望能夠用簡單的文字編輯器就完成我們的任務。VS Code 是現今最好的編輯器之一,我們可以使用它強大的插件以及內建的 Debug 功能來完成在IDE上的工作流程。

安裝 MinGW-w64

MinGW-w64 是以釋出壓縮包的方式發佈,我們可以透過 MinGW-w64 的 SourceForge 專案下載到目前最新版的 MinGW-w64

  1. 首先先到 MinGW-w64 的專案頁
  2. 選擇合適的 MinGW-w64 版本進行下載,
    例如:Toolchains targetting Win64/Personal Builds/mingw-builds/7.2.0/threads-posix/seh/x86_64-7.2.0-release-posix-seh-rt_v5-rev1.7z
  3. 解壓縮到合適的位置,例如:C:/tools/mingw64
  4. 環境變數PATH中添加 mingw64 的 bin 資料夾 Image

  5. 我們可以透過在cmd中使用gcc --version指令查看是否設定成功 Image

MinGW 有許多中版本可以選擇,詳細差異可以查看MinGW的Wiki說明

VS Code C/C++ 插件

C/C++ 套件,是由微軟進行維護的,因此質量十分高,經過一下簡單的配置我們就可以開始有著強大的補全功能。

首先我們必須在我們的專案中加入 C/C++ 環境設定檔,在 VS Code 中Ctrl + Shift + P呼叫出命令列後,選擇C/Cpp Edit Configurations...選項,設定檔c_cpp_properties.json會自動生成在.vscode的資料夾中。

Image

因為c_cpp_properties.json設定檔在Windows系統預設會搜尋Visual Studio的環境,因此我們必須做些修改,將其環境設定為MinGW的環境,主要設定有兩個重點。

  1. includePath需要導向MinGW的標頭檔
  2. intelliSenseMode設定為clang-x64模式

詳細設定範例

    
{
    "name": "Win32",
    "includePath": [
        "C:/tools/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++",
        "C:/tools/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/x86_64-w64-mingw32",
        "C:/tools/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/backward",
        "C:/tools/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include",
        "C:/tools/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/tr1",
        "C:/tools/mingw64/x86_64-w64-mingw32/include",
        "${workspaceRoot}"
    ],
    "defines": [
        "_DEBUG",
        "UNICODE",
        "_UNICODE"
    ],
    "intelliSenseMode": "clang-x64",
    "browse": {
        "path": [
            "C:/tools/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++",
            "C:/tools/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/x86_64-w64-mingw32",
            "C:/tools/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/backward",
            "C:/tools/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include",
            "C:/tools/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/tr1",
            "C:/tools/mingw64/x86_64-w64-mingw32/include",
            "${workspaceRoot}"
        ],
        "limitSymbolsToIncludedHeaders": true,
        "databaseFilename": ""
    }
}

mingw64 的路徑請根據安裝路徑自行修正

此時我們就可以使用強大的補全功能了

Image