在Linux上使用vscode編譯除錯C/C++程式碼
在linux下搬磚C/C++的姿勢有點辛苦,所以想著是不是可以用更優雅一些的姿勢搬磚,尤其是debug。然而,如果我們用CMake來組織工程(因為我們已經大量的使用了CMake檔案來組織工程),那麼就不只是涉及vscode設定的問題。
主要參考如下連結(官方文件):
Using C++ on Linux in VS Code(https://code.visualstudio.com/docs/cpp/config-linux)
一,需要用到的東西
(1)GCC(g++)作為編譯器
(2)GDB作為偵錯程式
(3)VS code作為編輯器,可以下載相關的擴充套件外掛(C/C++外掛,CMake外掛),從而組織成IDE使用
(4)CMake用於處理依賴,組織工程檔案
二、編譯和除錯
按照參考官方網頁裡的介紹,簡單的編譯設定非常簡單。
(1)安裝C/C++外掛
(2)Terminal->Configure default build task 自動生成tasks.json檔案(較大的工程,就在於組織tasks了)
(3)Ctrl+Shift+B編譯出可執行檔案
對應的設定,會生成相應的配置檔案,檔案寫的好,一次生成,多處使用即可:
tasks.json (compiler build settings)
主要是除錯上會方便很多,主要是對上層應用程式開發過程的除錯和問題定位,很直觀的斷點設定,單步執行等。也會生成對應的設定檔案,一次生成,多處使用:
launch.json (debugger settings)
三、cmake外掛編譯+vscode除錯
既然打算用CMake了,其實簡單編譯的tasks.json和launch.json可以省了,各種依賴如果已經組織好,在VScode裡編譯起來就很簡單了。當然在命令列裡用CMake組織好的工程,編譯也很簡單,mkdir & cd build, cmake …, make 就可以了。
在VScode裡面操作的話,對於組織好cmake的工程,直接呼叫CMake外掛就編出來了,當然如果有問題就得排錯,只是列印資訊是在VScode裡面還是在shell裡的差別,需要除錯的情況下,使用VScode進行除錯才會顯示出效率來。
但是,仔細想想看,也仍然是對於有main入口函式的應用程式工程有幫助,對於庫工程的問題定位,似乎仍然得回到在命令列裡掛gdb或加列印資訊的方式。
相關文章
- Ubuntu中用VScode編譯除錯C\C++UbuntuVSCode編譯除錯C++
- 在windows上配置vs code編譯除錯c/c++Windows編譯除錯C++
- vscode+C 編譯除錯VSCode編譯除錯
- linux環境下vscode 中C/C++編譯及除錯環境的搭建LinuxVSCodeC++編譯除錯
- 關於在ubuntu中用vscode編譯除錯C\C++,Proteus模擬執行stm32程式UbuntuVSCode編譯除錯C++
- C編譯: 使用gdb除錯編譯除錯
- vscode遠端除錯c++VSCode除錯C++
- 使用 vscode 除錯前端程式碼VSCode除錯前端
- vscode 除錯linux程式VSCode除錯Linux
- AndroidStudio使用NDK編譯C/C++程式碼使用原生庫Android編譯C++
- 使用 VSCode 除錯 Electron 主程式程式碼VSCode除錯
- 利用VS2017編譯、除錯Linux程式編譯除錯Linux
- vscode除錯多C++檔案專案VSCode除錯C++
- 嵌入式GDB除錯Linux C程式或交叉編譯(開發板)除錯LinuxC程式編譯
- 【C++】使用VS2022開發可以線上遠端編譯部署的C++程式C++編譯
- Windows10 VS2017 C++編譯Linux程式WindowsC++編譯Linux
- C/C++ 程式反除錯的方法C++除錯
- Windows+VSCode編譯在Linux-x86_64環境上執行的程式WindowsVSCode編譯Linux
- 如何在vscode中除錯程式碼?VSCode除錯
- Qt/C++編寫的mqtt除錯助手使用說明QTC++MQ除錯
- [譯]在CUDA C/C++中如何衡量程式碼效能C++
- protobuf 的交叉編譯使用(C++)編譯C++
- 在MacOS上使用gdb(cgdb)除錯Golang程式Mac除錯Golang
- Linux C++ 開發2 - 編寫、編譯、執行第一個程式LinuxC++編譯
- c/c++ gdb 除錯帶引數的程式C++除錯
- vscode使用chrome除錯報錯VSCodeChrome除錯
- 編譯除錯Net6原始碼編譯除錯原始碼
- 程式碼線上編譯器(上)- 編輯及編譯編譯
- 嵌入式安卓開發使用LLDB進行斷點除錯C/C++程式碼安卓LLDB斷點除錯C++
- Python 程式碼除錯—使用 pdb 除錯Python除錯
- vscode除錯使用斷點VSCode除錯斷點
- vscode 使用nodejs 除錯jsVSCodeNodeJS除錯
- vscode 使用 PHP debug 除錯VSCodePHP除錯
- C/C++程式除錯和記憶體檢測C++除錯記憶體
- LevelDB C++教程: Linux下編譯與安裝C++Linux編譯
- VS Code除錯C程式碼除錯C程式
- C++除錯總結C++除錯
- 【譯】在除錯時輕鬆導航程式碼委託除錯