首頁/ 汽車/ 正文

VSCode配置C++開發環境(MinGW-w64)

最近在學習C++的相關知識,這就需要配置相關的開發環境,雖然

Visual Studio可以近乎“傻瓜式”安裝相應的開發環境,但是其佔用量也非常大,VSCode相對輕量化,也方便後面學習其他語言的開發。

在VSCode配置C++開發環境的過程中,我也踩了許多的坑,記錄一下,也為有需要的同學提供參考。

VSCode下載安裝

VSCode下載安裝其實很簡單,但是大家需要注意“VSCode收費”的情況。VSCode本身是免費的,所以下載的時候要從官方網站下載,這邊貼一下官方網站:https://code。visualstudio。com/

下載好安裝包只需要雙擊安裝即可,如果有需要的話,可以調整安裝位置,個人建議別佔用C盤空間。

MinGW-w64下載、安裝與配置

1、下載安裝

MinGW-w64的下載依舊建議從官網下載:https://sourceforge。net/projects/mingw-w64/files/。安裝過程中,

一定要記住自己的安裝路徑

,因為後面配置系統環境變數的時候需要用到!

需要注意的是,MinGW-w64有兩種安裝方式:

一種是安裝器的形式,即從官網下載一個exe檔案,然後雙擊執行,接著透過這個安裝器選擇想要的版本等資訊,最後安裝器根據我們的選擇從官網下載安裝對應的版本。這種方式雖然簡單,但是很大機率會因為網路原因安裝失敗,所以

非常不推薦

!!!

另一種是從官網下載我們需要的版本的壓縮包,然後本地解壓即可。其實這種方式也不復雜,不過需要我們對其中的幾個引數有一定的瞭解。這邊附一張官網的圖,方便大家瞭解這兩種方式的區別,也避免下載錯誤。

VSCode配置C++開發環境(MinGW-w64)

x86_64是指64位的作業系統,i686是指32位的作業系統;

win32是開發windows系統程式的協議,posix是其他系統的協議(例如Linux、Unix、Mac OS);

異常處理模型 seh(新的,僅支援64位系統),sjlj (穩定的,64位和32位都支援), dwarf (優於sjlj的,僅支援32位系統)。

本人使用的系統是64位Win10系統,使用版本為x86_64-win32-seh

。據說x86_64-win32-sjlj的版本也可以,但是我在實際使用過程中,使用string型別的時候,沒法正常使用,一旦定義一個string型別變數,編譯執行之後終端就會“閃一下退出”如果直接使用終端命令編譯執行是可以的;我的解決方式就是更改版本為x86_64-win32-seh,問題解決。

2、環境變數配置

滑鼠放置在“此電腦”上,右擊選擇“屬性”,一直滑到最下面,選擇“高階系統設定”,然後選擇“環境變數”

VSCode配置C++開發環境(MinGW-w64)

然後在“系統變數”中選擇“新建”

VSCode配置C++開發環境(MinGW-w64)

然後輸入“變數名”和“變數值”,建議變數名和我的一模一樣,變數值設定為自己的安裝路徑。(該路徑應該是bin目錄的上一級)

VSCode配置C++開發環境(MinGW-w64)

然後在“系統變數”中找到“Path”,雙擊或者點選“編輯”

VSCode配置C++開發環境(MinGW-w64)

進入編輯頁之後,點選“新建”,然後在最後新增一行和我一樣的路徑即可。

千萬記得點選“確認”

進行儲存!!!

VSCode配置C++開發環境(MinGW-w64)

3、驗證

鍵盤按Win+R鍵,然後輸入cmd,按“確定”或者“回車”

VSCode配置C++開發環境(MinGW-w64)

在終端中輸入gcc -v,然後回車,如果可以輸出一堆東西,並且最後有一個gcc的版本資訊,那就說明安裝配置成功了。

VSCode配置C++開發環境(MinGW-w64)

VSCode配置C++開發環境

1、外掛安裝

開啟安裝好的VSCode,選擇左側的“拓展”,選擇安裝“C/C++”,這個是必須要安裝的。如果你和我一樣,英文非常菜,你也可以安裝簡體中文的拓展,這樣VSCode就會程式設計中文的,這就非常的友好。建議安裝完拓展之後重啟一下VSCode。

VSCode配置C++開發環境(MinGW-w64)

2、配置檔案

接下來是非常非常重要的部分,也是非常容易出錯的部分,有的同學可能會遇到一些莫名其妙的問題,我嘗試了好長時間,看了很多前輩的帖子,目前我的這個配置沒有問題,但是確實沒法保證針對其他開發環境也百分百有用,如果有問題,可以交流!

首先建立一個工作區(新建一個資料夾用於後面存放程式碼等檔案),我這兒名稱叫“CPLUSPLUS”,然後在這個工作區裡面新建一個“

。vscode

”的資料夾,注意不是“vscode”,不要漏掉那個點,接著在這個資料夾裡面新建三個配置檔案“c_cpp_properties。json”、“launch。json”、“tasks。json”。

VSCode配置C++開發環境(MinGW-w64)

c_cpp_properties.json檔案

{ “configurations”: [ { “name”: “Win32”, “includePath”: [ “${workspaceRoot}”, “D:/mingw64/include/**”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/include/c++”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/include/c++/x86_64-w64-mingw32”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/include/c++/backward”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/include”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/include-fixed”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/。。/。。/。。/。。/x86_64-w64-mingw32/include” ], “defines”: [ “_DEBUG”, “UNICODE”, “__GNUC__=6”, “__cdecl=__attribute__((__cdecl__))” ], “compilerPath”: “D:/mingw64/bin/g++。exe”, “intelliSenseMode”: “windows-gcc-x64”, “browse”: { “limitSymbolsToIncludedHeaders”: true, “databaseFilename”: “”, “path”: [ “${workspaceRoot}”, “D:/mingw64/include/**”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/include/c++”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/include/c++/x86_64-w64-mingw32”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/include/c++/backward”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/include”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/include-fixed”, “D:/mingw64/bin/。。/lib/gcc/x86_64-w64-mingw32/8。1。0/。。/。。/。。/。。/x86_64-w64-mingw32/include” ] } } ], “version”: 4}

關於c_cpp_properties。json,需要修改的是“includePath”和“path”。至於這裡面六個路徑分別是什麼,大家可以使用命令列去查詢自己的對應路徑。依然是Win+R,然後輸入cmd,接著回車,然後在終端輸入下面的命令,接著回車即可。

gcc -v -E -x c++ -

VSCode配置C++開發環境(MinGW-w64)

launch.json檔案

{ “version”: “0。2。0”, “configurations”: [ { “name”: “(gdb) Launch”, // 配置名稱,將會在啟動配置的下拉選單中顯示 “type”: “cppdbg”, // 配置型別,這裡只能為cppdbg “request”: “launch”, // 請求配置型別,可以為launch(啟動)或attach(附加) “program”: “${workspaceFolder}/exe/${fileBasenameNoExtension}。exe”,// 將要進行除錯的程式的路徑 “args”: [], // 程式除錯時傳遞給程式的命令列引數,一般設為空即可 “stopAtEntry”: false, // 設為true時程式將暫停在程式入口處,一般設定為false “cwd”: “${workspaceFolder}”, // 除錯程式時的工作目錄,一般為${workspaceFolder}即程式碼所在目錄 “environment”: [], “externalConsole”: true, // 除錯時是否顯示控制檯視窗,一般設定為true顯示控制檯 “MIMode”: “gdb”, // 這裡的路徑需要修改。改成自己的路徑 “miDebuggerPath”: “D:/mingw64/bin/gdb。exe”, “preLaunchTask”: “C/C++: g++。exe 生成活動檔案”, // 除錯會話開始前執行的任務,一般為編譯程式,c++為g++, c為gcc “setupCommands”: [ { “description”: “Enable pretty-printing for gdb”, “text”: “-enable-pretty-printing”, “ignoreFailures”: true } ] } ] }

需要注意的是引數“program”中我讓編譯生成的“exe檔案”單獨放在一個資料夾裡面了,這樣程式碼檔案和編譯生成的“exe檔案”可以區分開,更加的有條理。引數“miDebuggerPath”修改為自己的路徑即可。引數“preLaunchTask”需要注意一下,這個引數需要和後面的task。json檔案中的一個引數對應(兩者一模一樣)。

task.json檔案

{ “version”: “2。0。0”, “tasks”: [ { “type”: “shell”, “label”: “C/C++: g++。exe 生成活動檔案”,//任務的名字,就是剛才在命令面板中選擇的時候所看到的,可以自己設定 “command”: “D:/mingw64/bin/x86_64-w64-mingw32-g++。exe”, “args”: [//編譯時候的引數 “-g”,//新增gdb除錯選項 “${file}”, “-o”,//指定生成可執行檔案的名稱 “${workspaceFolder}/exe/${fileBasenameNoExtension}。exe” ], “options”: { “cwd”: “D:/mingw64/bin” }, “problemMatcher”: { “owner”: “cpp”, “fileLocation”: [ “relative”, “\\” ], “pattern”: { “regexp”: “^(。*):(\\d+):(\\d+):\\s+(warning|error):\\s+(。*)$”, “file”: 1, “line”: 2, “column”: 3, “severity”: 4, “message”: 5 } }, “group”: { “kind”: “build”, “isDefault”: true//表示快捷鍵Ctrl+Shift+B可以執行該任務 } } ]}

前文說到的launch。json檔案中的“preLaunchTask”引數要和task。json檔案中的“label”引數保持一致。“command”引數和“cwd”引數修改為自己對應的路徑即可。

3、測試

新建一個專門存放程式碼檔案的資料夾(自定義名稱),然後新建一個名為exe的資料夾用於存放編譯產生的exe檔案,接著在新建的存在程式碼的資料夾中新建一個字尾為cpp檔案,並輸入測試程式碼

VSCode配置C++開發環境(MinGW-w64)

按“F5”鍵編譯執行,會發現終端自動跳出,並顯示內容,同時exe資料夾中有一個新生成的檔案,這就是編譯後的exe檔案。

4、中文亂碼問題解決

上述測試過程中,我們會發現終端的輸出內容看不懂,是一串亂碼

VSCode配置C++開發環境(MinGW-w64)

這是因為VSCode使用的是“UTF-8”編碼,而Win10終端預設的是使用gbk編碼,我們當然可以修改終端的預設編碼格式來解決中文亂碼問題,但是後面其他的工作場景可能會帶來一些意想不到的問題,因此我們採用的是“將VSCode的編碼修改為gbk”

點選左下角“齒輪”形狀的“設定”,選擇“設定”,進入設定頁之後,輸入並搜尋“編碼”,然後將“UTF-8”編碼修改為“Simplified Chinese (GB 2312)”,然後重新F5執行即可。

VSCode配置C++開發環境(MinGW-w64)

綜上就完成了VSCode配置C++開發環境的過程了。

相關文章

頂部