在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 下編譯及除錯 C 程式碼的簡易指南Linux編譯除錯
- 關於在ubuntu中用vscode編譯除錯C\C++,Proteus模擬執行stm32程式UbuntuVSCode編譯除錯C++
- linux環境下vscode 中C/C++編譯及除錯環境的搭建LinuxVSCodeC++編譯除錯
- C編譯: 使用gdb除錯編譯除錯
- C 編譯: 使用 gdb 除錯編譯除錯
- Linux 下編譯及除錯 C 程式碼的簡易指南Linux編譯除錯
- vscode遠端除錯c++VSCode除錯C++
- 使用 vscode 除錯前端程式碼VSCode除錯前端
- 使用GDB命令列偵錯程式除錯C/C++程式命令列除錯C++
- AndroidStudio使用NDK編譯C/C++程式碼使用原生庫Android編譯C++
- 使用 VSCode 除錯 Electron 主程式程式碼VSCode除錯
- 優化C++程式碼(2):C++程式碼的編譯過程優化C++編譯
- vscode 除錯linux程式VSCode除錯Linux
- 如何加快C++程式碼的編譯速度C++編譯
- 在c++程式中呼叫被C編譯器編譯後的函式,為什麼要使用extern “C”C++編譯函式
- 使用gdb和gdbserver除錯Android C/C++程式Server除錯AndroidC++
- vscode除錯多C++檔案專案VSCode除錯C++
- 使用gdb編譯除錯mysql編譯除錯MySql
- 嵌入式GDB除錯Linux C程式或交叉編譯(開發板)除錯LinuxC程式編譯
- Qt/C++編寫的mqtt除錯助手使用說明QTC++MQ除錯
- C/C++ 程式反除錯的方法C++除錯
- 在MacOS上使用gdb(cgdb)除錯Golang程式Mac除錯Golang
- 編譯C++ 程式的過程編譯C++
- protobuf 的交叉編譯使用(C++)編譯C++
- 減少C++程式碼編譯時間的方法C++編譯
- [譯]在CUDA C/C++中如何衡量程式碼效能C++
- 利用VS2017編譯、除錯Linux程式編譯除錯Linux
- Windows+VSCode編譯在Linux-x86_64環境上執行的程式WindowsVSCode編譯Linux
- 如何在vscode中除錯程式碼?VSCode除錯
- 編譯除錯Net6原始碼編譯除錯原始碼
- 【譯文】使用Rstudio除錯程式碼(debug)除錯
- C/C++ 編譯器和偵錯程式以及靜態庫、動態庫使用匯總(轉)C++編譯
- 使用makefile編譯c程式編譯C程式
- Linux下的C/C++編譯環境配置LinuxC++編譯
- c/c++ gdb 除錯帶引數的程式C++除錯