前言:
了解C/C++程序編譯步驟以及如何生成可執行文件: C源程序->編譯預處理->編譯程序(生成*.s文件)->優化程序->匯編程序(生成*.o文件)->鏈接程序->可執行文件(*.out)
https://www.cnblogs.com/hzb462606/p/14605445.html
正文:
1、由於VSCode工具最終也是調用g++、clang++編譯器,所以安裝VSCode前,先檢查下自己機器上又沒有這兩個編譯器。可以通過下面指令分別檢查是否安裝:
g++ --version
clang++ --version
eg: xxx@madeMacBook-Pro ~ % g++ --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple clang version 11.0.0 (clang-1100.0.33.17) Target: x86_64-apple-darwin19.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin xxx@madeMacBook-Pro ~ % clang++ --version Apple clang version 11.0.0 (clang-1100.0.33.17) Target: x86_64-apple-darwin19.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
2、啟動VSCode,按下圖打開擴展
在擴展搜索框里,輸入如下三款插件,目的是讓VSCode擁有C++語法高亮、錯誤檢查和調試等功能。
*注: 為什么安裝CodeLLDB? Mac在更新到Catalina后不再支持lldb調試。
所有插件安裝完后,我們創建一個控制台應用跑一下。
在桌面創建一個文件夾Test(你的工程根目錄),在VSCode中打開該文件夾。在里面新建一個cpp文件命名為main.cpp。隨意寫些測試程序,如下
#include <iostream> using namespace std; int main(int argc, char const *argv[]) { cout << "Hello world!!" << endl; return 0; }
3、之后打開工作區,開始調試,會看到以下提示:
創建 launch.json 文件,選擇LLDB
launch.json:
{ "version": "0.2.0", "configurations": [ { "type": "lldb", "request": "launch", "name": "Debug", //"program": "${workspaceFolder}/test.out", //上一行是官方寫法,但是不同的cpp調試都要改配置,非常麻煩 "program": "${workspaceFolder}/${fileBasenameNoExtension}", "args": [], "cwd": "${workspaceFolder}", "preLaunchTask": "Build with Clang" } ] }
4、保存后按快捷鍵⇧⌘B編譯,此時會出現提示沒有找到要運行的生成任務,所以接下來將進行生成任務的配置工作,VSCode提供了一些模版,有需要的可以自行選擇,這里就選則Others。
點擊“No build task to run found. Configure Build Task...”后,如下所示:
點擊“Create tasks.jon file form template”后,如下所示:
點擊“Others”后,生成“tasks.json”文件,將其內容替換如下:
{ "version": "2.0.0", "tasks": [ { "label": "Build with Clang",//這個任務的名字在launch.json最后一項配置 "type": "shell", "command": "clang++", "args": [ "-std=c++17", "-stdlib=libc++", //"test.cpp",這里是官方寫法,不具有普遍性,注意兩個配置文件的統一性即可 "${fileBasenameNoExtension}.cpp", "-o", //"test.out", "${fileBasenameNoExtension}", "--debug" ], "group": { "kind": "build", "isDefault": true } } ] }
保存后切換到對應.cpp文件, 按快捷鍵‘⇧⌘B’編譯,你會發現工程目錄下已經生成了對應的 {${fileBasenameNoExtension}}這個可執行文件
6、在點Debug的啟動按鈕,開始調試,自動在斷點處停下來,在自帶的終端里進行輸入。