Visual Studio Code配置C勇凭、C++運行環(huán)境

系統(tǒng)環(huán)境:64位 Windows 10

1. 環(huán)境的準(zhǔn)備

(1)盲镶、下載 MinGW-w64
MinGW-w64 - for 32 and 64 bit Windows 在此頁面下載MinGW-w64扣溺,點擊 Download
  MinGW团甲、MinGW-w64,它們是兩個不同的項目祥诽,MinGW已經(jīng)很久沒有更新了譬圣,不推薦

(2)、添加環(huán)境變量雄坪,我的電腦 -> 右鍵 -> 高級系統(tǒng)設(shè)置 -> 環(huán)境變量 -> 系統(tǒng)變量 -> 在 path 中添加 MinGW-w64 的安裝路徑

(3)厘熟、運行cmd,輸入 gcc -v 顯示出對應(yīng)的版本

(4)维哈、需要安裝的插件:

  • C/C++(就是有些教程里的cpptools)
  • Code Runner:運行選中代碼段(支持大量語言绳姨,包括Node)
  • Include Autocomplete:提供頭文件補全
  • C/C++ Snippets:Snippets即重用代碼塊

其他可選插件:

  • Bracket Pair Colorizer:彩虹花括號
  • One Dark Pro:大概是VS Code安裝量最高的主題
  • GBKtoUTF8:把GBK編碼的文檔轉(zhuǎn)換成UTF8編碼的
  • C/C++ Clang Command Adapter:提供靜態(tài)檢測(Lint)

2. 配置四個.json文件

(1)、創(chuàng)建一個你打算存放代碼的文件夾(稱作工作區(qū))笨农,路徑不能含有中文和空格

(2)就缆、打開VS Code,選擇打開文件夾谒亦,選擇剛才那個文件夾,點VS Code上的新建文件夾空郊,名稱為.vscode(這樣做的原因是Windows的Explorer不允許創(chuàng)建的文件夾第一個字符是點)

(3)份招、創(chuàng)建以下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" // 調(diào)試會話開始前執(zhí)行的任務(wù),一般為編譯程序哼审。與tasks.json的label或者taskName相對應(yīng)
        },
        {
            "name": "C++ Launch", // 配置名稱谐腰,將會在調(diào)試配置下拉列表中顯示
            "type": "cppdbg", // 調(diào)試器類型:Windows表示器使用cppvsdbg;GDB和LLDB使用cppdbg涩盾。該值自動生成
            "request": "launch", // 調(diào)試方式
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 要調(diào)試的程序(完整路徑十气,支持相對路徑)
            "args": [], // 傳遞給上面程序的參數(shù),沒有參數(shù)留空即可
            "stopAtEntry": false, // 是否停在程序入口點(停在main函數(shù)開始)
            "cwd": "${workspaceRoot}", // 調(diào)試程序時的工作目錄
            "environment": [],
            "externalConsole": true, // 調(diào)試時是否顯示控制臺窗口
            "preLaunchTask": "LaunchBuild",
            "linux": { // 下面是Linux平臺下春霍,需要配置的參數(shù)砸西,這里暫時不用關(guān)心
                "MIMode": "gdb",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            },
            "osx": { // 下面是Mac平臺下,需要配置的參數(shù),這里暫時不用關(guān)心
                "MIMode": "lldb"
            },
            "windows": { // 下面是Windows平臺下芹枷,需要配置的參數(shù)
                "MIMode": "gdb", // VSCode要使用的調(diào)試工具
                "miDebuggerPath": "D:\\mingw-w64\\mingw64\\bin\\gdb.exe", // miDebugger的路徑衅疙,該值必須設(shè)置。盡管會自動搜索
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            }
        },
        { // 不用關(guān)心
            "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", //任務(wù)名稱
            "command": "g++",
            "isBuildCommand": true, //編譯, 快捷鍵crtl+shift+B,需要這個標(biāo)識
            "args": [
                "-fexec-charset=GBK", // 支持中文顯示
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}.exe"
            ], // 編譯命令參數(shù)
            "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", //任務(wù)名稱走芋,進行Debug調(diào)試理朋,快捷鍵: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的命令行和某些選項可以根據(jù)自己的需要在此處修改嗽上, 以下代碼根據(jù)自己的情況調(diào)整,寫完一個以后要打逗號熄攘,最后一個就不用了
這個設(shè)置會用在全局 settings.json 里(如果不需要兽愤,這個文件可以為空)

{
    "editor.fontFamily": "Consolas, 微軟雅黑", // 控制編輯器字體
    "workbench.colorTheme": "One Dark Pro", // 主題
    "files.trimTrailingWhitespace": true, // 保存時,刪除每一行末尾的空格
    "workbench.colorCustomizations": {
        "activityBar.foreground": "#33ff66" // 自定義顏色
    },
    "git.enabled": false, // 如果你不用git挪圾,我建議你關(guān)閉它
    "editor.minimap.enabled": false, // 我個人不用minimap浅萧,就是右邊那個東西
    "editor.dragAndDrop": false, // 選中文字后,可以拖動它們調(diào)整位置哲思。我是不需要
    "files.autoGuessEncoding": true // 啟用后洼畅,會在打開文件時嘗試猜測字符集編碼
}

(7)、c_cpp_properties.json 文件中棚赔,加入如下代碼:

  • 我的版本是 7和 7.2.0帝簇,若是和我的不同,則需要修改該文件中的路徑 (必須修改成 MinGW-w64 的安裝路徑),否則會提示找不到頭文件;
  • 輸入 gcc -v 可以查看版本號
  • Windows下的路徑為反斜杠靠益,原本應(yīng)使用兩個反斜杠來轉(zhuǎn)義丧肴,但直接用斜杠在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)、調(diào)式
直接按快捷鍵 F5胧后,就可以進行了調(diào)試

  • 存在一個問題:程序中出現(xiàn)“ system("pause"); ”芋浮, 進行調(diào)試,在vs code的調(diào)試控制臺顯示亂碼壳快,顯示的字符是???????????. . .
  • 解決方式:注釋 system("pause"); 不影響調(diào)試 ( 不知道怎么更改 vs code的調(diào)試控制臺的編碼格式 )

(9)纸巷、編譯、運行
需要先編輯眶痰,再運行
1瘤旨、編譯,按快捷鍵 crtl+shift+B凛驮,進行編譯
2裆站、運行,操作如下:

3、如果之前執(zhí)行過調(diào)試宏胯,需要再次編譯后羽嫡,再運行,不然會產(chǎn)生中文亂碼
原因:調(diào)試F5 產(chǎn)生的運行文件的編碼格式是UTF-8肩袍,在終端中杭棵,中文顯示亂碼

(10)、永久解決cmd窗口氛赐,中文顯示亂碼
1. win+R 輸入regedit 進入注冊表
2. 找到 HKEY_CURRENT_USER\Console%SystemRoot%_system32_cmd.exe 如果 該項下已存在CodePage項魂爪,則把值改為十進制”65001”;如果不存在艰管,在該項下新建一個 DWORD(32位值)滓侍,命名為“CodePage”,值設(shè)為“65001”
3. 重啟cmd后生效
4. 對于Power shell修改同樣牲芋,只需在第2步修改
%SystemRoot%_system32_WindowsPowerShell_v1.0_powershell.exe 下的項撩笆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者缸浦。
  • 序言:七十年代末夕冲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子裂逐,更是在濱河造成了極大的恐慌歹鱼,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卜高,死亡現(xiàn)場離奇詭異弥姻,居然都是意外死亡,警方通過查閱死者的電腦和手機篙悯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門蚁阳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鸽照,你說我怎么就攤上這事〉咝” “怎么了矮燎?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赔癌。 經(jīng)常有香客問我诞外,道長,這世上最難降的妖魔是什么灾票? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任峡谊,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘既们。我一直安慰自己濒析,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布啥纸。 她就那樣靜靜地躺著号杏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪斯棒。 梳的紋絲不亂的頭發(fā)上盾致,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機與錄音荣暮,去河邊找鬼庭惜。 笑死,一個胖子當(dāng)著我的面吹牛穗酥,可吹牛的內(nèi)容都是我干的护赊。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼迷扇,長吁一口氣:“原來是場噩夢啊……” “哼百揭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蜓席,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤器一,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后厨内,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祈秕,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年雏胃,在試婚紗的時候發(fā)現(xiàn)自己被綠了请毛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡瞭亮,死狀恐怖方仿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情统翩,我是刑警寧澤仙蚜,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站厂汗,受9級特大地震影響委粉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜娶桦,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一贾节、第九天 我趴在偏房一處隱蔽的房頂上張望汁汗。 院中可真熱鬧,春花似錦栗涂、人聲如沸知牌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽送爸。三九已至,卻和暖如春暖释,著一層夾襖步出監(jiān)牢的瞬間袭厂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工球匕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纹磺,地道東北人。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓亮曹,卻偏偏與公主長得像橄杨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子照卦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容