標籤:查看 名稱 config 拖動 就是 database problem coding 自動
系統內容:64位 Windows 10
1. 環境的準備
(1)、下載 MinGW-w64
- MinGW-w64 - for 32 and 64 bit Windows 在此頁面下載MinGW-w64,點擊 Download
MinGW、MinGW-w64,它們是兩個不同的項目,MinGW已經很久沒有更新了,不推薦 (2)、添加環境變數,我的電腦 -> 右鍵 -> 進階系統設定 -> 環境變數 -> 系統變數 -> 在 path 中添加 MinGW-w64 的安裝路徑(3)、運行cmd,輸入 gcc -v 顯示出對應的版本(4)、需要安裝的外掛程式:
- C/C++(就是有些教程裡的cpptools)
- Code Runner:運行選中程式碼片段(支援大量語言,包括Node)
- Include Autocomplete:提供標頭檔補全
- C/C++ Snippets:Snippets即重用代碼塊
其他可選外掛程式:
- Bracket Pair Colorizer:彩虹花括弧
- One Dark Pro:大概是VS Code安裝量最高的主題
- GBKtoUTF8:把GBK編碼的文檔轉換成UTF8編碼的
- C/C++ Clang Command Adapter:提供靜態檢測(Lint)
2. 配置四個.json檔案
(1)、建立一個你打算存放代碼的檔案夾(稱作工作區),路徑不能含有中文和空格
(2)、開啟VS Code,選擇開啟檔案夾,選擇剛才那個檔案夾,點VS Code上的建立檔案夾,名稱為.vscode(這樣做的原因是Windows的Explorer不允許建立的檔案夾第一個字元是點)
(3)、建立以下4個檔案放到.vscode檔案夾下,效果如所示:
launch.json
tasks.json
settings.json
c_cpp_properties.json
(4)、launch.json 檔案中,加入如下代碼:
"miDebuggerPath": "D:\\mingw-w64\\mingw64\\bin\\gdb.exe", 需要修改為你安裝的 MinGW-w64 的路徑
{ "version": "0.2.0", "configurations": [ { "name": "CppDebug", "type": "gdb", "request": "launch", "target": "${fileDirname}/${fileBasenameNoExtension}.exe", "cwd": "${workspaceRoot}", "preLaunchTask": "CppDebug" // 偵錯工作階段開始前執行的任務,一般為編譯器。與tasks.json的label或者taskName相對應 }, { "name": "C++ Launch", // 配置名稱,將會在調試配置下拉式清單中顯示 "type": "cppdbg", // 調試器類型:Windows表示器使用cppvsdbg;GDB和LLDB使用cppdbg。該值自動產生 "request": "launch", // 調試方式 "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 要調試的程式(完整路徑,支援相對路徑) "args": [], // 傳遞給上面程式的參數,沒有參數留空即可 "stopAtEntry": false, // 是否停在程式進入點(停在main函數開始) "cwd": "${workspaceRoot}", // 偵錯工具時的工作目錄 "environment": [], "externalConsole": true, // 調試時是否顯示控制台視窗 "preLaunchTask": "LaunchBuild", "linux": { // 下面是Linux平台下,需要配置的參數,這裡暫時不用關心 "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] }, "osx": { // 下面是Mac平台下,需要配置的參數,這裡暫時不用關心 "MIMode": "lldb" }, "windows": { // 下面是Windows平台下,需要配置的參數 "MIMode": "gdb", // VSCode要使用的調試工具 "miDebuggerPath": "D:\\mingw-w64\\mingw64\\bin\\gdb.exe", // miDebugger的路徑,該值必須設定。儘管會自動搜尋 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } }, { // 不用關心 "name": "C++ Attach", "type": "cppdbg", "request": "attach", "program": "${fileDirname}/${fileBasenameNoExtension}.exe", "processId": "${command:pickProcess}", // 要Attach的進程ID "linux": { "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] }, "osx": { "MIMode": "lldb" }, "windows": { "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } } ]}
(5)、tasks.json檔案中,加入如下代碼:
{ "version": "0.1.0", "tasks": [ { "taskName": "LaunchBuild", //任務名稱 "command": "g++", "isBuildCommand": true, //編譯, 快速鍵crtl+shift+B,需要這個標識 "args": [ "-fexec-charset=GBK", // 支援中文顯示 "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe" ], // 編譯命令參數 "problemMatcher": { "owner": "cpp", "fileLocation": [ "relative", "${workspaceRoot}" ], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } }, { "taskName": "CppDebug", //任務名稱,進行Debug調試,快速鍵:F5 "command": "g++", "args": [ "-fexec-charset=UTF-8", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe" ], "problemMatcher": { "owner": "cpp", "fileLocation": [ "relative", "${workspaceRoot}" ], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } } ]}
(6)、settings.json 檔案中,加入如下代碼:
Code Runner的命令列和某些選項可以根據自己的需要在此處修改, 以下代碼根據自己的情況調整,寫完一個以後要打逗號,最後一個就不用了
這個設定會用在全域 settings.json 裡(如果不需要,這個檔案可以為空白)
{ "editor.fontFamily": "Consolas, 微軟雅黑", // 控制編輯器字型 "workbench.colorTheme": "One Dark Pro", // 主題 "files.trimTrailingWhitespace": true, // 儲存時,刪除每一行末尾的空格 "workbench.colorCustomizations": { "activityBar.foreground": "#33ff66" // 自訂色彩 }, "git.enabled": false, // 如果你不用git,我建議你關閉它 "editor.minimap.enabled": false, // 我個人不用minimap,就是右邊那個東西 "editor.dragAndDrop": false, // 選中文字後,可以拖動它們調整位置。我是不需要 "files.autoGuessEncoding": true // 啟用後,會在開啟檔案時嘗試猜測字元集編碼}
(7)、c_cpp_properties.json 檔案中,加入如下代碼:
我的版本是 7和 7.2.0,若是和我的不同,則需要修改該檔案中的路徑 (必須修改成 MinGW-w64 的安裝路徑),否則會提示找不到標頭檔;
輸入 gcc -v 可以查看版本號碼
Windows下的路徑為反斜線,原本應使用兩個反斜線來轉義,但直接用斜杠在VS Code中也接受
{ "configurations": [ { "name": "Win32", "intelliSenseMode": "clang-x64", "includePath": [ "${workspaceFolder}", "D:/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++", "D:/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/x86_64-w64-mingw32", "D:/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/backward", "D:/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include", "D:/mingw-w64/mingw64/include", "D:/mingw-w64/mingw64/x86_64-w64-mingw32/include", "D:/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include-fixed" ], "defines": [ "_DEBUG", "UNICODE", "__GNUC__=7", "__cdecl=__attribute__((__cdecl__))" ], "browse": { "path": [ "${workspaceFolder}", "D:/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++", "D:/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/x86_64-w64-mingw32", "D:/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/backward", "D:/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include", "D:/mingw-w64/mingw64/include", "D:/mingw-w64/mingw64/x86_64-w64-mingw32/include", "D:/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include-fixed" ], "limitSymbolsToIncludedHeaders": true, "databaseFilename": "" } } ], "version": 3}
(8)、調式
直接按快速鍵 F5,就可以進行了調試
存在一個問題:程式中出現“ system("pause"); ”, 進行調試,在vs code的偵錯主控台顯示亂碼,顯示的字元是???????????. . .
解決方式:注釋 system("pause"); 不影響調試 ( 不知道怎麼更改 vs code的偵錯主控台的編碼格式 )
(9)、編譯、運行
需要先編輯,再運行
1、編譯,按快速鍵 crtl+shift+B,進行編譯
2、運行,操作如下:
3、如果之前執行過調試,需要再次編譯後,再運行,不然會產生中文亂碼
原因:調試F5 產生的運行檔案的編碼格式是UTF-8,在終端中,中文顯示亂碼
(10)、永久解決cmd視窗,中文顯示亂碼
1. win+R 輸入regedit 進入註冊表
2. 找到 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe 如果 該項下已存在CodePage項,則把值改為十進位”65001”;如果不存在,在該項下建立一個 DWORD(32位值),命名為“CodePage”,值設為“65001”
3. 重啟cmd後生效
4. 對於Power shell修改同樣,只需在第2步修改
%SystemRoot%_system32_WindowsPowerShell_v1.0_powershell.exe 下的項。
Visual Studio Code配置C、C++運行環境