(一)背景介紹
相信大家作爲一個程序員都有自己所鍾愛的編輯器和編譯器,但是有一點是肯定的,並不是所有的編輯器都是適合自己的。有人或許會問windows選擇編輯器還需要糾結嗎,做嵌入式的用keil,玩x86的就用visual stdio。沒錯這兩款編輯器基本滿足了我們開發者的需求,但是一方面,雖然KEIL做沒有操作系統的ARM開發是很香,集編輯編譯軟硬件調試工程管理爲一體,但是嵌入式做到深處到了操作系統這個層次KEIL基本就沒什麼軟用了。
在過去的很長一段時間裏,我都在急切的尋找這一款一方面看起來很牛逼,而且可以很省心的IDE,然後我找到了,他叫VSCODE,是我目前發現的最適合我的編輯器。
(二)爲什麼選擇vscode 而不是visual studio
1.這是一個半開放的編輯器
爲什麼要叫他半開放,這個編譯器並沒有向程序員隱藏技術細節,一開始這個只是一個簡單的文本代碼編輯器,類似於NOTEPAD之類東西,但是程序員可以按照自己的喜好去配置適合自己的開發環境。使他成爲一個可以個人定製的IDE。
很久之前我就說過當在使用KEIL,和visual studio的時候明顯有一種被人安排了的感覺,沒錯就是被安排了,我們所做的就是簡單的敲一敲代碼,然後按一下F5,這種事情找一個非程序員人學習一段時間相信也可以熟練的使用。但是在vscode裏面所有的編譯命令都是自己用類似於LINUX命令行的方式敲出來的,爲了簡便我們還可以使用腳本快捷編譯。
2.這個編輯器看起來是真的牛逼
這是我下載完插件以後的情況,是不是看起來就有想擼代碼的慾望。
3.內嵌了類似於LINUX的命令行
在vscode的內嵌命令行裏你可以體驗到LINUX操作的感覺。
4.開機賊快
我不知道什麼算快,反正他的開機時間是visual stdio的三分之一。
5.自動支持github環境
內嵌了github的常見操作,再也不用爲記不住命令行而煩惱了
(三)怎樣讓你的vscode看起來更牛逼
這就是裝插件了。
把這些插件裝上基本就沒問題了
1)、C/C++,這個肯定是必須的。
2)、C/C++ Snippets,即 C/C++重用代碼塊。
3)、C/C++ Advanced Lint,即 C/C++靜態檢測 。
4)、Code Runner,即代碼運行。
5)、Include AutoComplete,即自動頭文件包含。
6)、Rainbow Brackets,彩虹花括號,有助於閱讀代碼。
7)、One Dark Pro,VSCode 的主題。
8)、GBKtoUTF8,將 GBK 轉換爲 UTF8。
9)、ARM,即支持 ARM 彙編語法高亮顯示。
10)、Chinese(Simplified),即中文環境。
11)、vscode-icons,VSCode 圖標插件,主要是資源管理器下各個文件夾的圖標。
12)、compareit,比較插件,可以用於比較兩個文件的差異。
13)、DeviceTree,設備樹語法插件。
裝上這些對於嵌入式應用就夠了。
改語言,雖然英文看起來更專業,但是好像還是中文開發環境更舒服。
按下“Ctrl+Shift+P”打開搜索框,在搜索框裏面輸入“config”,然後選擇“Configure Display Language”,在打開的 local.json 文件中將 locale 修改爲 zh-cn。
(四)搭建編譯環境
這個比較麻煩一點,首先必須配置一下環境變量。讓命令行可以識別gcc,g++命令這個涉及到安裝編譯器。但是如果你之前安裝過其他編譯器的話那就不用這麼麻煩了。
因爲之前安裝過QT直接就用QT來幹活了
這樣就OK了,然後你的vscode就可以直接使用命令行了。
gcc命令行相信都會敲,但是隻用一個文件還算簡單,可是當你要管理更多的文件的時候,就不太方便了好在vscode 有自己管理方式。
- 在工程目錄.vscode文件夾下新建兩個文件:launch.json(配置調試選項),task.json
- 修改系統設置腳本
這是我一個數值計算項目的目錄結構,要完成配置只需要,配置.vscode文件夾下的兩個腳本文件即可。
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名稱,將會在啓動配置的下拉菜單中顯示
"type": "cppdbg", // 配置類型,這裏只能爲cppdbg
"request": "launch", // 請求配置類型,可以爲launch(啓動)或attach(附加)
"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 將要進行調試的程序的路徑
"args": ["-I../include"], // 程序調試時傳遞給程序的命令行參數,一般設爲空即可
"stopAtEntry": false, // 設爲true時程序將暫停在程序入口處,一般設置爲false
"cwd": "${workspaceFolder}", // 調試程序時的工作目錄,一般爲${workspaceFolder}即代碼所在目錄
"environment": [],
"externalConsole": true, // 調試時是否顯示控制檯窗口,一般設置爲true顯示控制檯
"MIMode": "gdb",
"miDebuggerPath": "E:\\QT\\QTCreater\\Tools\\mingw530_32\\bin\\gdb.exe", // miDebugger的路徑,注意這裏要與MinGw的路徑對應
"preLaunchTask": "g++", // 調試會話開始前執行的任務,一般爲編譯程序,c++爲g++, c爲gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
{
"version": "2.0.0",
"command": "g++",
"args": ["-g","${file}","-I./include","-o","${fileBasenameNoExtension}.exe"], // 編譯命令參數
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
此外應該修改設置腳本
"code-runner.executorMap": {
"cpp": "cd $dir && g++ -g ./*.cpp -fpermissive -I../include -o test && ./test"
},
"code-runner.respectShebang": false,
"code-runner.runInTerminal": true
在配置腳本末尾gcc編譯命令。
配置完成點擊右上角三角形即可運行,點擊F5可以調試。
如果需要配置類似於opencv和qt的動態庫的話在命令行中添加鏈接頭文件的庫文件的選項即可。但是如果程序要單獨運行,需要在同級目錄有庫文件。