前言
最近想要切換編輯工具,之前工作中使用過 Source Insight,Eclipse,CLion 來寫 C++ 代碼。目前來說 Source Insight 已經(jīng)非常古老,只有編寫代碼還說得過去,編譯、調試方面都不行。Eclipse 使用的時間最長,相對來說也比較好用,但是對于 C++11 之后的 C++ 代碼實際上支持的并不友好。CLion 是相當棒的編輯工具,但是收費。
相對折中一下 VS Code 是一個比較不錯的選擇,并且周圍很多同事和朋友都在用。本來想在網(wǎng)上找找使用 VS Code 寫 C++ 代碼的資料,找來找去都非常凌亂,因此在這里我希望自己整理一份使用說明文檔。
PC 版本說明
由于我是在 macbook 上安裝的,所以這里僅介紹在 macbook 上的使用方法。我的 macbook 版本是12.5

前期準備
安裝 brew
我很多工具都是通過 brew 安裝的,因此需要在電腦上先安裝 brew,關于如何安裝 brew 在這里就不做介紹了。安裝方法很簡單,只是需要等比較長的時間。
安裝 VS Code
https://code.visualstudio.com/
在這個地址可以下載最新版本的 VS Code,我下載的壓縮包是 VSCode-darwin-universal.zip(我安裝的版本是 1.74.3),雙擊 zip 之后會解壓出一個帶有 Visual Studio Code 圖標的目錄,把這個目錄剪切到 “應用程序” 就完成安裝了。

雙擊打開 VS Code,看到的是空空如也。
安裝插件
安裝中文包
在安裝 C++ 插件之前可以先安裝中文包,對于英文不太熟練的朋友,這個中文包可能會有些幫助。

然后就是使用中文包,使用方法在插件的說明文檔中有介紹。

按照描述操作就可以了。設置完語言之后會有提示框要求重啟。
安裝 C++ 編輯器
C++ 編輯器應該有很多種選擇,我還是按照網(wǎng)上查到的文檔,安裝一個 C++ 編輯器

根據(jù)插件的說明,這個插件不包含編譯和調試的工具,因此編譯和調試工具需要自己安裝。macbook 的編譯和調試工具我記得是自帶的,如果某位朋友電腦上本身沒有,那只能找找相應的文檔了。
安裝 CMake
我參考的文檔介紹可以使用 Code Runner 插件,我對這個插件沒研究明白。不過在我看來 Code Runner 可能寫個代碼玩玩還可以,但是真正用在項目上估計比較難。在這里我目前比較推薦使用 CMake 進行編譯和調試
在 PC 上安裝 CMake
brew install cmake
安裝后會在 /opt/homebrew/bin/cmake 目錄
然后可以執(zhí)行一下
cmake --version
如果找不到 cmake 可以嘗試執(zhí)行
/opt/homebrew/bin/cmake --version
如果只能在 /opt/homebrew/bin/cmake --version 執(zhí)行成功,則需要在 VS Code 中調整一下 CMake 路徑,如下圖:

在 VS Code 中安裝 CMake 插件

編輯、編譯和調試代碼
建立一個 C++ Demo

我創(chuàng)建的是 demo_c++ 目錄,然后在里面建立了 3 個文件。
main.cpp
#include <iostream>
#include "Test.h"
int main() {
std::cout << "hello, i'm main" << std::endl;
Test t;
t.print();
return 0;
}
Test.h
#ifndef _TEST_H_
#define _TEST_H_
class Test {
public:
Test();
~Test();
void print();
};
#endif
Test.cpp
#include <iostream>
#include "Test.h"
Test::Test() {
}
Test::~Test() {
}
void Test::print() {
std::cout << "i'm class test" << std::endl;
}
建立 CMakeLists.txt 文件
按照 CMake Tools quick start 的描述,在使用 ??P 之后,輸入:CMake: Quick Start,然后再輸入執(zhí)行文件的名字,我這里輸入的是 demo_c++。

然后選擇創(chuàng)建可執(zhí)行程序,于是會自動創(chuàng)建 CMakeLists.txt,并且會顯示如下日志:

PS:在 CMake Tools 里面可以配置 CMake 的一些內容,感興趣的朋友可以再仔細研究一下。
手工添加 cpp 文件
由于我們的 demo 是兩個 cpp 文件,而 CMake 自動創(chuàng)建的 list 僅包含 1 個 cpp,所以額外的 cpp 文件需要手工添加一下,如下圖:

用 CMake 編譯
在創(chuàng)建了 CMake 之后我們會發(fā)現(xiàn) VS Code 最下面一行會發(fā)生變化

通過點擊這里的 Build 就可以編譯了

點擊 build 之后,我們會看到編譯出來的可執(zhí)行文件:demo_c++
用 CMake 運行

點擊上圖的符號就可以運行,對于 demo 程序會在 terminal 中輸出:
hello, i'm main
i'm class test
用 CMake 調試

在代碼里隨便找一行設置斷點,然后點下面的小甲蟲。然后就報錯了

在這里我點了取消,先看看錯誤信息是什么
Starting: "/Library/Developer/CommandLineTools/usr/bin/lldb" --interpreter=mi
error: unknown option: --interpreter=mi
Use 'lldb --help' for a complete list of options.
"/Library/Developer/CommandLineTools/usr/bin/lldb" exited with code 1 (0x1).
錯誤處理
上面的信息是 /Library/Developer/CommandLineTools/usr/bin/lldb 這個命令不支持 --interpreter=mi 這個參數(shù)。這里很容易被彈出提示“打開 launch.json” 誤導。
這里需要了解的關鍵點在與 lldb 和 lldb-mi 的差異。在文檔中明確描述需要使用 lldb-mi

這里獲取到了一個關鍵路徑 ~/.vscode/,以及關鍵字段 miDebuggerPath
先在 ~/.vscode/ 找到 lldb-mi,我的路徑是:
~/.vscode/extensions/ms-vscode.cpptools-1.13.9-darwin-arm64/debugAdapters/lldb-mi/bin/lldb-mi
然后,我們因為是使用 CMake 來調試,而 CMake 并不會加載 launch.json,所以不能在 launch.json 里面做文章。還是要看工具自身的配置,在里面找到了這個。

點一下 Cmake: Debug Config 中的 settings.json,出現(xiàn)了如下圖的內容

在這里可以輸入 miDebuggerPath 然后保存,我這里的配置如下:
{
"cmake.cmakePath": "/opt/homebrew/bin/cmake",
"cmake.debugConfig": {
"miDebuggerPath": "<當前賬戶絕對路徑>/.vscode/extensions/ms-vscode.cpptools-1.13.9-darwin-arm64/debugAdapters/lldb-mi/bin/lldb-mi"
}
}
然后再點擊小甲蟲,就可以正常調試了。

除了點擊按鈕之外,還可以在調試控制臺輸入命令調試。(只是輸入命令比較麻煩,需要先輸入 -exec 再輸入其他命令才可以)
參考資料
http://www.360doc.com/content/22/0420/00/277688_1027337827.shtml
https://blog.csdn.net/henry_23/article/details/120998555
https://code.visualstudio.com/docs/cpp/launch-json-reference
https://code.visualstudio.com/docs/cpp/CMake-linux
https://code.visualstudio.com/docs/editor/debugging#_launch-configurations
https://code.visualstudio.com/docs/cpp/lldb-mi文章來源:http://www.zghlxwxcb.cn/news/detail-434906.html
https://code.visualstudio.com/docs/cpp/cpp-debug文章來源地址http://www.zghlxwxcb.cn/news/detail-434906.html
到了這里,關于Visual Studio Code(VSCode) 編輯/編譯/調試 C++ 代碼的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!