每次換台電腦寫c++,就要找配置,很是繁瑣。這次自己寫篇博客,記錄下相關配置過程。
安裝編譯器
打開下面的網站 http://www.msys2.org ,下載 64 位的 MSYS2,按照主頁上的步驟安裝軟件。完裝完成后,輸入命令:
cd /etc/pacman.d
進入 /etc/pacman.d 目錄后,分別修改下面 3 個文件。
-
mirrorlist.mingw32 文件內容為:
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/ -
mirrorlist.mingw64 文件內容為:
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/ -
mirrorlist.msys 文件內容為:
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
然后輸入下面命令,更新系統。
cd ~
pacman -Syu
再次輸入命令,安裝 c++ 工具。
pacman -S mingw-w64-x86_64-toolchain
出現以下提示,分別選擇 3,9,13。文件有點大,耐心等待下載。
或安裝clang,此步驟配置較麻煩,慎用。
pacman -S mingw-w64-x86_64-clang
pacman -S mingw-w64-x86_64-lldb
pacman -S mingw-w64-x86_64-make

完成后,把 e:\Softwares\msys64\mingw64\bin\加入到系統環境中。注意:e:\Softwares目錄根據實際情況調正。
安裝VSCode
這次工具我們選擇 VsCode,方便實用,雖然c++的插件弱了點,但是微軟開發的,不會差到哪里去。安裝完成后選擇 c/c++ 插件。見下圖。

打開軟件,然后在File菜單中,點擊Add Folder to Workspace..., 選擇一個目錄作為以后寫c++代碼的文件夾,這里我們假設選擇的文件夾為 cpp。在 cpp 下新建目錄 .vscode, 然后在 .vscode 目錄下分別新建 task.json,c_cpp_properties.json, launch.json 3 個文件。見下圖。

tasks.cpp 的內容如下:
{
"version": "2.0.0",
"tasks": [
{
"label": "Compile",
"command": "g++",
"args": [
"-g",
"${file}", //指定編譯源代碼文件
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe", // 指定輸出文件名,不加該參數則默認輸出a.exe
"-ggdb3", // 生成和調試有關的信息
"-Wall", // 開啟額外警告
"-static-libgcc", // 靜態鏈接
"-std=c++17", // 使用最新的c++17標准
"-Wno-format",
"-fexec-charset=GBK", //Console窗體輸出字符編碼 保證能正常顯示中文
"-finput-charset=UTF-8" //輸入編譯器文本編碼 默認為UTF-8
],
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher":"$gcc",
}
]
}
c_cpp_properties.json 的內容:
{
"configurations": [
{
"name": "Win32",
"intelliSenseMode": "clang-x64",
"compilerPath": "e:/Softwares/msys64/mingw64/bin/g++.exe",
"includePath": [
"${workspaceFolder}"
],
"defines": [
"_DEBUG",
"UNICODE",
"__GNUC__=7",
"__cdecl=__attribute__((__cdecl__))"
],
"browse": {
"path": [
"${workspaceFolder}"
]
},
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "",
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 3
}
launch.json 的內容:
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (GDB)", // 配置名稱,將會在啟動配置的下拉菜單中顯示
"type": "cppdbg", // 配置類型,這里只能為cppdbg
"request": "launch", // 請求配置類型,可以為launch(啟動)或attach(附加)
"targetArchitecture": "x64", // 生成目標架構,一般為x86或x64
"program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 將要進行調試的程序的路徑
"args": [], // 程序調試時傳遞給程序的命令行參數,一般設為空即可
"stopAtEntry": false, // 設為true時程序將暫停在程序入口處,一般設置為false
"cwd": "${workspaceRoot}", // 調試程序時的工作目錄,一般為${workspaceRoot}
"externalConsole": true, // 調試時是否顯示控制台窗口,一般設置為true顯示控制台
"internalConsoleOptions": "neverOpen", // 如果不設為neverOpen,調試時會跳到“調試控制台”選項卡",
"MIMode": "gdb", // 指定連接的調試器
"miDebuggerPath": "gdb.exe", // 調試器路徑
"setupCommands": [
{
"description": "Enable pretty-printing for GDB",
"text": "-enable-pretty-printing",
"ignoreFailures": false
}
],
"preLaunchTask": "Compile"
}
]
}
運行代碼
完成上面的工作后,在 cpp 目錄下,寫個 test.cpp 文件,然后按 Ctrl+Shift+B,就會生成 test.exe 文件了。然后在終端執行 test.exe。
