c/c++ 環境(MinGW + vs code )搭建與使用指南
前言
這次又是一次工具分享篇,上次寫了一篇GCC/G++ + sublime text3 + powershell在windows使用指南的分享,這次又帶了一個新的生產工具——vs code(此次僅針對windows,其實linux配置也是相近的,而且會更簡單),至於vs code,sublime,code blocks有什麼異同,為什麼會換一套工具,我會在心得中進行詳細的說明。
環境搭建
MinGW下載
- 本文為了方便,直接將MinGW放在C盤根目錄下
VS Code配置
- 下載與安裝vs code,官網傳送門
- 配置編譯和除錯的環境,c/c++拓展外掛安裝,如下圖所示,搜尋c/c++
- launch指令碼與tasks指令碼編寫
在工作區內新建.vscode的資料夾,內部新建兩個名為launch.json和tasks.json兩個檔案,如下圖所示
- 指令碼填充
launch.json內的內容如下
{
"version": "0.2.0",
"configurations": [
{
"name": "C\\C++",
"type": "cppdbg",
"request": "launch",
"targetArchitecture" : "x86",
"program": "${workspaceRoot}\\${fileBasenameNoExtension}.exe",
"miDebuggerPath":"C:\\mingw\\bin\\gdb.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"externalConsole" : true,
"preLaunchTask": "g++"
}
]
}
tasks.json內容填充如下
{
"command": "g++",
"args": ["-g","-std=c++11","${file}","-o","${workspaceRoot}\\${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
}
}
}
- 平臺驗證
#include <iostream>
#include <windows.h>
int main()
{
std::cout << "hello MinGW + VS Code!\n";
system("pause");
return 0;
}
說明
畫紅線的是GCC/G++的編譯引數,需要連結庫的在這裡新增
劃紅線的是編譯器的偵錯程式所在的目錄,主要要修改這裡,本文給出的是在C盤根目錄下的安裝路徑
對比與心得
這裡率先需要說明的是,以下觀點僅僅是從使用開發小專案體驗來看,不涉及編譯效率,大專案,程式碼託管等更深層次的問題。
一、對於CodeBlocks,介面風格比較陳舊,在目前主流審美來看可能已經落伍了,但是作為一個跨平臺的IDE來說,功能上基本滿足小眾開發者的需求,應該稱得上輕量級。但是從我自己的使用經歷來看,有幾點不得不吐槽
1.漢字亂碼問題,時不時會給你來個漢字亂碼,雖然可你解決,但還是很鬧心
2.除錯模組,不知是不是我電腦的問題,在我一年半的使用,總是有些奇奇怪怪的問題,wtf,我斷點加了呀,怎麼跳過去了;怎麼打不開除錯模組。(心累,關閉重啟吧,哇,終於正常了,開森)
3.除錯的時候不小心關閉了dos視窗(嘿嘿,請重啟應用再次嘗試,我**)
二、對於sublime,使用時間不是很長,一直用他來寫點小東西,嘗試過寫一箇中等專案,體驗一般,除錯(呵呵),至少我沒發現除錯模組,只能在dos下用,Linux有terminal感覺還可以接受,windows的power shell真心一般。
三、對於vs code,先說缺點吧,博主電腦效能一般,執行稍微會有點卡頓,不過比vs 2017好了很多,尤其是在除錯的時候會更明顯。再說好處吧,自己集成了一個終端,以及error呈現的視窗,還有除錯模組,小的程式問題可以很快的定位,但是到了大規模的程式我想這個應該還是會很雞肋的吧。
最後,附上vs code 的快捷鍵,祝玩的愉快。