Visual Studio Code配置C、C++運行環境

來源:互聯網
上載者:User

標籤:查看   名稱   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++運行環境

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.