C/C++ 在編輯環境的建立上是相對複雜的語言,我們習慣使用功能強大的 IDE 來幫我們把瑣碎的雜事給包裝起來,例如:函式庫連結、編譯任務、Debug 等等,不過有時我們並不希望安裝過多肥大的 IDE 在電腦上,更多的時候我們希望能夠用簡單的文字編輯器就完成我們的任務。VS Code 是現今最好的編輯器之一,我們可以使用它強大的插件以及內建的 Debug 功能來完成在IDE上的工作流程。
安裝 MinGW-w64
MinGW-w64 是以釋出壓縮包的方式發佈,我們可以透過 MinGW-w64 的 SourceForge 專案下載到目前最新版的 MinGW-w64
- 首先先到 MinGW-w64 的專案頁
- 選擇合適的 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
- 解壓縮到合適的位置,例如:
C:/tools/mingw64
環境變數PATH中添加 mingw64 的 bin 資料夾
我們可以透過在cmd中使用
gcc --version
指令查看是否設定成功
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
的資料夾中。
因為c_cpp_properties.json
設定檔在Windows系統預設會搜尋Visual Studio的環境,因此我們必須做些修改,將其環境設定為MinGW的環境,主要設定有兩個重點。
includePath
需要導向MinGW的標頭檔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 的路徑請根據安裝路徑自行修正
此時我們就可以使用強大的補全功能了