在Mac下配置用VSCode編寫C/C++程式的環境
##前言
最近需要編寫一些C/C++程式,由於體量都不是很大所以想要追求一個輕量化的編輯和編譯環境,於是想起了在Dock欄吃灰的VSCode。通過查詢資料,包括VSCode的官方文件,最終配置實現了Mac下基於VSCode的C/C++編輯環境搭建。
##正文
在配置環境之前先檢查一下機器上都安裝了什麼C++編譯器,通過以下兩條命令可以檢視是否安裝了g++/clang編譯器,本人兩種編譯器都有裝所以其結果如下圖所示。
g++ --version
clang++ --version
然後回到VSCode去安裝如下圖所示的兩款外掛,以獲得C++語法高亮、錯誤檢查和除錯等功能。
那麼,前期準備工作完成後進入具體的配置階段。首先在目錄下新建一個資料夾作為工程目錄,然後在VSCode中開啟該資料夾。在裡面新建一個cpp檔案命名為main.cpp。隨意寫點程式在裡面。
然後點選側邊欄的Debug按鈕,點選設定圖示,便會提示你選擇環境,這裡就選擇C++那一項。
此時VSCode會在你的工程目錄下自動新建一個.vscode的資料夾,並新建了一個launch.json的檔案,這裡需要對生成的檔案進行一些小改動。本人配置如下:
{ // 使用 IntelliSense 瞭解相關屬性。 // 懸停以檢視現有屬性的描述。 // 欲瞭解更多資訊,請訪問: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(lldb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/a.out", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "lldb" } ] }
儲存後按快捷鍵⇧⌘B編譯,此時會出現提示沒有找到要執行的生成任務,所以接下來將進行生成任務的配置工作,VSCode提供了一些模版,有需要的可以自行選擇,這裡就選則Others。
此時.vscode目錄下會出現一個task.json檔案,對它進行改寫。本人配置如下:
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "hello world", "type": "shell", "command": "clang++", "args": [ "main.cpp" ], "group": { "kind":"build", "isDefault": true } } ] }
儲存後再次按快捷鍵⇧⌘B就能夠順利編譯了,編譯完成後按F5執行,得到輸出結果。
##其他
每次編譯完成後,我們會發現目錄下多了一個a.out檔案,這個檔案是Linux/Unix環境下編譯器編譯原始碼並連線產生的可執行檔案,在未指定的情況下其預設命名為a.out。那麼如何通過修改配置檔案來修改這個檔案的命名呢?
方法很簡單,在task.json中的args屬性下填入-o yourfilename.out
,以本人的配置作為示例:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "hello world",
"type": "shell",
"command": "clang++",
"args": [
"-o app.out",
"main.cpp"
],
"group": {
"kind":"build",
"isDefault": true
}
}
]
}
可以發現這裡的command和args兩個屬性就相當於在命令列中執行了clang++ -o yourfilename.out main.cpp
,所以如果還有其他的需求也可以對這裡進行改寫。最後不要忘記修改launch.json中的program屬性,將.out的檔名修改為與task.json一致。便可以成功編譯執行了。編譯後結果如下圖: