廣大使用C++編程的OIer:
你還在用UI丑陋、除錯難受、連代碼補全都沒有的Dev cpp刷題?
快來嘗試一下號稱“宇宙最強編輯器”的VSCode!
顏值珂愛的外表,成百上千的多樣主題!強大的代碼補全!便捷的運行方式!
不多廢話,開整!
文章目錄
- 提示
- 下載VSCode
- 優化VSCode
- 安裝MinGW編譯器
- 下載并解壓
- 設定環境變數
- 檢驗是否成功安裝
- 安裝插件
- 配置插件
- launch.json
- tasks.json
- c_cpp_properties.json
- 愉快地編譯與除錯
- 編譯之后運行
- 僅編譯
- 除錯
- 快捷地運行(使用Code Runner)
- 使用Code Runner比按Ctrl+F5鍵好在哪里?
- 配置
提示
本文的所有操作和配置在64位Windows 10系統下進行,在其他系統下的操作和配置可能略有出入,
下載VSCode
打開瀏覽器前往VSCode官網:

點擊Download for Windows按鈕下載VSCode安裝包,
然后一路next下去,安裝完成!
最好不要安裝在C盤
優化VSCode
參照我的另一篇文章《優化VSCode:讓你的VSCode變得好用又美觀》對你的VScode進行優化,
如何打開setting.json?
快捷鍵F1或Ctrl+Shift+P調出 命令面板, 然后輸入 Open Settings (JSON),
即可打開settings.json
編輯完畢記得保存哦!
安裝MinGW編譯器
下載并解壓
由于MinGW官網在國外,下載極慢且最近疑似遭到污染,所以我準備了下載好的MinGW壓縮包放在BaiDu網盤(提取碼:5cy2),可能不是最新版,但對于OI來說夠用了,
下載壓縮包后,將壓縮包解壓至磁盤上你喜歡的路徑,重命名檔案夾為你喜歡的名字,(路徑和名字不要含有任何空格、中文或其他非ASCII字符,路徑越短越好,最好不要在C盤)

筆者這里將解壓路徑設為
D:\MinGW64
解壓后目錄應為類似如下結構:
D:
MinGW64
|- bin
|- bulid-info.txt
|- etc
|- include
|- lib
|- libexec
|- opt
|- share
|- x86_64-w64-mingw32
設定環境變數
別急!現在還沒有安裝完能,還需要設定環境變數,
進入控制面板 -> 高級系統設定 -> 環境變數 -> 用戶變數區域的“編輯” -> 新建
輸入你的MinGW安裝路徑\bin,一路確定,設定成功!
筆者這里設定的環境變數內容是
D:\MinGW64\bin
檢驗是否成功安裝
打開cmd,輸入g++若顯示:

則代表成功安裝,
安裝插件
必須安裝以下插件才能愉快的刷題:


配置插件
在磁盤中新建一個路徑和名稱中不含有任何空格、中文或其他非ASCII字符的檔案夾(路徑越短越好,最好不要在C盤),這個檔案夾就是你以后做題時寫代碼、保存代碼、運行代碼的地方了,我們稱之為家目錄,
在家目錄下新建檔案夾,取名為.vscode(注意是小寫),
在.vscode檔案夾下新建三個檔案:
tasks.json(用于配置構建任務)launch.json(用于配置除錯)c_cpp_properties.json(用于配置c/cpp選項)
將以下內容粘貼至對應的json檔案中(記得補全漢字標識你的MinGW安裝路徑并去掉注釋):
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名稱,將會在啟動配置的下拉選單中顯示
"type": "cppdbg",
"request": "launch", // 請求配置型別,可以為launch(啟動)或attach(附加)
"program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 將要進行除錯的程式的路徑
"args": [], // 程式除錯時傳遞給程式的命令列引數,一般設為空即可
"stopAtEntry": false, // 設為true時程式將暫停在程式入口處,一般設定為false
"cwd": "${fileDirname}", // 除錯程式時的作業目錄,一般為${workspaceFolder}即代碼所在目錄
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "你的MinGW安裝路徑\\bin\\gdb.exe", // miDebugger的路徑,注意這里要與MinGw的路徑對應
"preLaunchTask": "g++ build",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build",
"command": "你的MinGW安裝路徑\\bin\\g++.exe",
"args": [//編譯引數串列
"${file}",
"-fexec-charset=GBK",
"-static-libgcc",
"-g",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
],
"problemMatcher": [
"$gcc"
]
}
]
}
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"__cdecl=__attribute__((__cdecl__))"
],
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64",
"browse": {
"path": [
"${workspaceFolder}"
]
}
}
],
"version": 4
}
至此,.vscode檔案夾的內容就配置完畢了,
可以有多個家目錄,事實上,它們只是擁有
.vscode檔案夾的普通目錄而已,配置好一個.vscode檔案夾后,可以將.vscode檔案夾保存起來備用,當部署其他的家目錄時,可以把以前的.vscode檔案夾拷貝進去以免去再次配置的麻煩,換句話說,
擁有
.vscode目錄并正確配置了launch.json、tasks.json、c_cpp_properties.json三個組態檔的目錄就叫做家目錄,家目錄中以及其下無論多深的目錄中,都可以正確地進行c/cpp的代碼補全、編譯運行和除錯,
家目錄下的目錄名稱中最好不含有任何空格、中文或其他非ASCII字符,
最好不要在
.vscode檔案夾中添加除了組態檔以外的東西,
愉快地編譯與除錯
在上述作業都順利完成后,趕快在家目錄下新建一個.cpp檔案吧!
如何新建檔案:在側邊欄檔案管理器中右鍵可喚出選單,之后的操作幾乎如同在windows資源管理器中一樣,
在檔案中寫下你的代碼,
編譯之后運行
寫好代碼后,你可以按如下幾種方式運行你的代碼:
- 按Ctrl+~鍵(~鍵一般在Esc鍵的下方)喚出控制臺,手動輸入編譯命令,手動在終端運行(這種方式原始粗暴但不容易出問題,不過它似乎使前面所做的那么多作業幾乎白做了)
- 按Ctrl+F5鍵,等待一小會后會彈出黑色cmd視窗,在視窗里面運行的便是你的程式,
- 缺點:似乎不能方便的在代碼運行結束后暫停以方便查看運行結果,而且視窗彈出前的“準備時間”似乎很長,
- 解決方案:滑鼠移到某行行號的左側或在某行上按F9可以打一個斷點,程式運行至此處會暫停,借助這個方法,我們可以在
return 0;行處打斷點來暫停程式,(很不優雅的方式)
- 通過Code Runner插件快捷地運行,方法下文會介紹(推薦使用該方法)
僅編譯
通過Ctrl+Alt+B喚出生成任務串列,選擇C/C++: g++.exe生成活動檔案以做到只編譯而不運行,
除錯
通過按下F5鍵來為你的代碼啟動除錯,
或者點擊側邊圖示欄的:

然后點擊:

也可以為你的代碼啟動除錯,
盡管F5看起來和運行沒什么區別,但是請不要使用除錯代替運行,即不要使用F5代替Ctrl+F5,
除錯界面介紹:

來嘗試一下用VSCode除錯代碼吧!
快捷地運行(使用Code Runner)
還記得《優化VSCode:讓你的VSCode變得好用又美觀》中提到的Code Runner插件嗎?
現在它可以幫助我們快捷地運行我們的cpp代碼!
使用Code Runner比按Ctrl+F5鍵好在哪里?
首先,按Ctrl+F5鍵的運行方式本質其實也是除錯,只是減少了啟動的除錯服務,但是仍有一部分除錯服務被啟動,啟動速度慢,
而使用Code Runner本質是在控制臺輸入命令,和最原始的手動敲命令編譯運行有異曲同工之妙,輕量級,啟動速度快,
其次,按Ctrl+F5鍵的運行方式會在編譯時加入-g引數,加入了這個引數生成的可執行檔案保留了除錯所需的代碼資訊,而我們使用Code Runner的初衷是運行而不是除錯,多余的代碼資訊只會降低編譯速度和運行速度,
還有一點,按Ctrl+F5鍵的運行方式需要靠打斷點的方式在程式結束前暫停程式,并且是在彈出的黑視窗運行,脫離了VSCode,很不方便也很不優雅,
而使用Code Runner可以通過ConsolePauser.exe實作自動暫停代碼同時顯示代碼運行耗時(就像Dev cpp一樣),不靠打斷點,并且能在VSCode的內置終端里運行,始終不脫離VSCode,沒有黑視窗,更方便,
所以,個人認為使用Code Runner比按Ctrl+F5鍵好,
配置
首先按照《優化VSCode:讓你的VSCode變得好用又美觀》配置Code Runner插件,
然后在"code-runner.executorMap"設定項的大括號中加入如下內容(注意補全漢字標識ConsolePauser.exe的路徑):
"cpp": " cls && cd /d $dir && g++ \"$fileName\" -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" -static-libgcc -std=c++11 && ConsolePauser.exe的路徑\\ConsolePauser.exe $fileNameWithoutExt",
"c": " cls && cd /d $dir && gcc \"$fileName\" -fexec-charset=GBK -o \"$fileNameWithoutExt.exe\" -static-libgcc -std=c11 && ConsolePauser.exe的路徑\\ConsolePauser.exe $fileNameWithoutExt"
你可能會問ConsolePauser.exe的路徑是什么東西?
別急,我們慢慢分析,
首先,Code Runner似乎沒有自動暫停并顯示代碼運行耗時的功能,如何才能在Code Runner中實作Dev cpp中自動暫停并顯示代碼運行耗時的功能(畢竟這個功能對OIer來說很重要)呢?
經過一番的苦思冥想,終于找到了解決方案:借!
借?向誰借?
向Dev cpp借!
在Dev cpp安裝目錄下發現了這么一個檔案:

它在命令列引數中接收一個程式路徑,運行程式后自動暫停并顯示代碼運行耗時,
就像這樣:

我們可以單獨將這個檔案提取出來,借助它實作我們想實作的功能,
這邊已經將其提取出來了,放在BaiDu網盤(提取碼:x124)中,大家可以自己下載,
下載完了之后,將其安置在磁盤中你喜歡的位置(路徑和名稱中不含有任何空格、中文或其他非ASCII字符,路徑越短越好,最好不要在C盤)
這個路徑就是上面提到的所需填寫的ConsolePauser.exe的路徑,
一切配置完成后,讓我們寫一個程式,并用Code Runner運行一下吧:
提示:通過Ctrl+Alt+N快捷鍵可以代替按下綠色小三角的方式運行,

s/1WrOWo9HF7SNSrJyI-1RxVg)(提取碼:x124)中,大家可以自己下載,
下載完了之后,將其安置在磁盤中你喜歡的位置(路徑和名稱中不含有任何空格、中文或其他非ASCII字符,路徑越短越好,最好不要在C盤)
這個路徑就是上面提到的所需填寫的ConsolePauser.exe的路徑,
一切配置完成后,讓我們寫一個程式,并用Code Runner運行一下吧:
提示:通過Ctrl+Alt+N快捷鍵可以代替按下綠色小三角的方式運行,

至此,你成功擁有了一個刷題的利器:VSCode!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/259271.html
標籤:其他
上一篇:php實戰RabbitMQ四(訊息持久化與公平調度)
下一篇:(詳細分析)基于pyqt5、pyqtgraph和GLViewWidget持續動態更新3D散點圖點的位置,提高重繪幀數,使其有飄動的效果
