国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux環(huán)境使用VSCode調(diào)試簡單C++代碼

這篇具有很好參考價(jià)值的文章主要介紹了Linux環(huán)境使用VSCode調(diào)試簡單C++代碼。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文將通過演示一個(gè)簡單C++代碼的編譯調(diào)試過程,介紹在VSCode中如何使用Linux環(huán)境下的GCC C++編譯器(g++)和GDB 調(diào)試器(gdb)。

關(guān)于GCC、g++、gcc、gdb,這里不做詳細(xì)介紹,如果感興趣可以參考另一篇文章:詳解C/C++代碼的預(yù)處理、編譯、匯編、鏈接全過程,里面有詳細(xì)的解釋。

看懂這篇文章的內(nèi)容,只需要知道g++用來編譯C++代碼,gdb用來調(diào)試C++代碼即可。

示例代碼內(nèi)容如下:

// hello.cpp
#include <iostream>
using namespace std;
int main(){
	cout << "Hello, VSCode!" << endl;
    return 0;
}

1. 終端命令行方式編譯、調(diào)試簡單C++代碼

如果不考慮VSCode編輯器,在Linux環(huán)境中編譯調(diào)試一個(gè)簡單的C++代碼可以只通過命令行實(shí)現(xiàn),具體過程分為兩步:

  1. 第一步:將*.cpp源代碼文件通過g++編譯器生成一個(gè)可調(diào)試的可執(zhí)行二進(jìn)制文件:
g++ -g hello.cpp -o hello

指令解析:

  • 為了能夠使用gdb調(diào)試,需要在編譯時(shí)加上-g
  • hello.cpp:待編譯的源文件名
  • -o hello:指定生成的可執(zhí)行文件名為 hello
# 運(yùn)行 hello 的結(jié)果:
./hello
Hello, VSCode!
  1. 第二步:調(diào)用gdb調(diào)試器對可執(zhí)行文件進(jìn)行調(diào)試:
gdb hello

調(diào)試的過程如下:
Linux環(huán)境使用VSCode調(diào)試簡單C++代碼

  • 如果希望在VSCode中編譯調(diào)試C++代碼,所要做的就是配置完成上面的兩步。

2. 通過VSCode對C++代碼進(jìn)行編譯、調(diào)試

主要參考:

  • VSCode官方教程: Using C++ on Linux in VS Code
  • 詳解Linux下使用vscode編譯運(yùn)行和調(diào)試C/C++

2.1 前提條件

  1. VSCode中的"C/C++插件"已安裝(直接在VSCode擴(kuò)展商店搜索"C++"即可)

Linux環(huán)境使用VSCode調(diào)試簡單C++代碼

  1. 確保g++編譯器gdb調(diào)試器已安裝。可以在終端查看g++是否已安裝
g++ -v

如果能輸出版本信息,則已安裝。

gdb通過以下命令安裝:

sudo apt-get update
sudo apt-get install build-essential gdb

2.2 配置tasks.json

在VSCode中打開示例代碼文件夾,

Linux環(huán)境使用VSCode調(diào)試簡單C++代碼

  1. 在VSCode的主菜單中,選擇 Terminal>Configure Default Build Task
  2. 出現(xiàn)一個(gè)下拉菜單,顯示 C++ 編譯器的各種預(yù)定義編譯任務(wù)。選擇 C/C++: g++ build active file(如果配置了中文,會顯示 “C/C++: g++ 生成活動(dòng)文件”
  3. 選擇后,vscode會自動(dòng)生成一個(gè).vscode文件夾和 tasks.json文件,此時(shí)的代碼文件夾結(jié)構(gòu)如下:
    Linux環(huán)境使用VSCode調(diào)試簡單C++代碼
    tasks.json的內(nèi)容如下:
{
	"version": "2.0.0",
	"tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活動(dòng)文件",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "編譯器: /usr/bin/g++"
        }
    ]
}

tasks.json的作用是告訴VSCode如何編譯程序

在本文中是希望調(diào)用g++編譯器從cpp源代碼創(chuàng)建一個(gè)可執(zhí)行文件,這樣就完成了第1節(jié)中所說的編譯調(diào)試第一步。

從tasks.json的"command""args"可以看出,其實(shí)就是執(zhí)行了以下命令:

/usr/bin/g++ -g ${file} -o ${fileDirname}/${fileBasenameNoExtension}

其中,

  • ${file}:當(dāng)前活動(dòng)文件(就是vscode當(dāng)前查看的文件),這里是hello.cpp
  • ${fileDirname}/${fileBasenameNoExtension}:在這里就是當(dāng)前目錄下的hello
  • 有關(guān)VSCode中的變量名,可以參考:VSCode Variables Reference

2.3 執(zhí)行編譯

在2.2節(jié)配置完成 tasks.json 文件后,VSCode就知道應(yīng)該用g++編譯器對cpp文件進(jìn)行編譯,下面執(zhí)行編譯即可:

  1. 回到活動(dòng)文件hello.cpp(很重要,不然 ${file} 和 ${fileDirname}這些變量都會錯(cuò))
  2. 快捷鍵ctrl+shift+B或從菜單中選擇運(yùn)行:Terminal -> Run Build Task,即可執(zhí)行 tasks.json中指定的編譯過程
  3. 編譯任務(wù)完成后,會出現(xiàn)終端提示,對于成功的g++編譯,輸出如下:
    Linux環(huán)境使用VSCode調(diào)試簡單C++代碼
    這一步完成后,在代碼目錄下就出現(xiàn)了一個(gè)可執(zhí)行文件hello。
  4. (可選) 個(gè)性化修改 tasks.json
    可以通過修改 tasks.json滿足一些特定需求,比如將"${file}"替換“${workspaceFolder}/*.cpp”來構(gòu)建多個(gè) C++ 文件; 將“${fileDirname} /${fileBasenameNoExtension}” 替換為硬編碼文件名(如“hello.out”)來修改輸出文件名

2.4 調(diào)試hello.cpp

完成上述的編譯配置后,就可以對hello.cpp進(jìn)行調(diào)試了:

  1. 回到hello.cpp,確保其是活動(dòng)文件(active file)
  2. 設(shè)置一個(gè)斷點(diǎn)
  3. 從右上角的按鈕中,選擇 Debug C/C++ file
    Linux環(huán)境使用VSCode調(diào)試簡單C++代碼
  4. 然后就開啟調(diào)試過程了,可以單步運(yùn)行、添加監(jiān)視等等。

2.5 個(gè)性化配置launch.json

按照2.4節(jié)的過程,已經(jīng)可以簡單調(diào)試一個(gè).cpp代碼,但是在某些情況下,可能希望自定義調(diào)試配置,比如指定要在運(yùn)行時(shí)傳遞給程序的命令參數(shù)。這種情況下我們可以在launch.json中定義自定義調(diào)試配置。

下面是配置調(diào)試過程的步驟:

  1. 從主菜單中,選擇 Run > Add Configuration…,將會生成一個(gè)launch.json文件
  2. launch.json文件右下角點(diǎn)擊 “添加配置”,選擇 “(gbd)啟動(dòng)”,文件內(nèi)容參考如下:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 啟動(dòng)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "為 gdb 啟用整齊打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "將反匯編風(fēng)格設(shè)置為 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "miDebuggerPath": "/usr/bin/gdb",
            "preLaunchTask": "C/C++: g++ 生成活動(dòng)文件"
        }
    ]
}

這里launch.json的作用就是告訴VSCode如何調(diào)用gdb調(diào)試器。

如果想要在調(diào)試/運(yùn)行程序時(shí)添加參數(shù),只需要把參數(shù)添加在"args"選項(xiàng)中即可。

2.6 總結(jié)

在VSCode中編譯、調(diào)試一個(gè)簡單的.cpp文件,所需要做的就是:

  1. 在 tasks.json 中調(diào)用 g++ 生成一個(gè)可執(zhí)行二進(jìn)制文件
  2. 在 launch.json 中調(diào)用 gdb 對生成的可執(zhí)行文件進(jìn)行調(diào)試

2.7 復(fù)用C++配置

上面的過程已經(jīng)完成了在VSCode中調(diào)試Linux環(huán)境下的C++代碼的配置,但只適用于當(dāng)前工作空間。如果想要在其他的工程文件夾下復(fù)用這種配置,只需要把tasks.jsonlaunch.json文件復(fù)制到新文件夾下的.vscode目錄下,然后根據(jù)需要改變對應(yīng)的源文件和可執(zhí)行文件的名稱即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-441961.html

3.參考教程

  1. 詳解Linux下使用vscode編譯運(yùn)行和調(diào)試C/C++
  2. VSCode官方教程: Using C++ on Linux in VS Code
  3. VSCode Variables Reference

到了這里,關(guān)于Linux環(huán)境使用VSCode調(diào)試簡單C++代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • linux | vscode | makefile | c++編譯和調(diào)試

    linux | vscode | makefile | c++編譯和調(diào)試

    簡單介紹環(huán)境: vscode 、centos、 gcc、g++、makefile 簡單來說就是,寫好項(xiàng)目然后再自己寫makefile腳本實(shí)現(xiàn)編譯。所以看這篇博客的用戶需要了解gcc編譯的一些常用命令以及makefile語法。在網(wǎng)上看了很多教程,以及官網(wǎng)也看了很多次,最后自己一點(diǎn)多一點(diǎn)摸索,有的些許收獲。 首

    2024年02月15日
    瀏覽(15)
  • Visual Studio Code(VSCode) 編輯/編譯/調(diào)試 C++ 代碼

    Visual Studio Code(VSCode) 編輯/編譯/調(diào)試 C++ 代碼

    最近想要切換編輯工具,之前工作中使用過 Source Insight,Eclipse,CLion 來寫 C++ 代碼。目前來說 Source Insight 已經(jīng)非常古老,只有編寫代碼還說得過去,編譯、調(diào)試方面都不行。Eclipse 使用的時(shí)間最長,相對來說也比較好用,但是對于 C++11 之后的 C++ 代碼實(shí)際上支持的并不友好。

    2024年02月03日
    瀏覽(29)
  • VScode在遠(yuǎn)程服務(wù)器進(jìn)行python代碼的調(diào)試【conda環(huán)境】

    VScode在遠(yuǎn)程服務(wù)器進(jìn)行python代碼的調(diào)試【conda環(huán)境】

    其中vscode中需要安裝擴(kuò)展:remote ssh 裝完擴(kuò)展后本地多個(gè)圖標(biāo),如下圖所示: 當(dāng)然,初始狀態(tài)不是這樣(因?yàn)槲乙呀?jīng)配置好了哈),你需要點(diǎn)擊“+”,然后在框框中輸入用戶名和服務(wù)器IP地址 進(jìn)行相應(yīng)的配置 ! 點(diǎn)擊上面的設(shè)置按鈕可以進(jìn)行.ssh/config的配置文件編輯,點(diǎn)擊+好來

    2024年02月13日
    瀏覽(17)
  • 解決MAC中vscode調(diào)試C++代碼無法處理輸入的問題

    解決MAC中vscode調(diào)試C++代碼無法處理輸入的問題

    寫在前面的話:很久沒有使用C/C++進(jìn)行編程了,這次在MAC電腦的vscode中對C/C++代碼進(jìn)行調(diào)試時(shí),發(fā)現(xiàn)運(yùn)行到scanf、cin等輸入語句時(shí)無法輸入,參考了網(wǎng)上一些教程,發(fā)現(xiàn)有些繁瑣或是難以解決我的問題。因此以本文記錄最終的解決方案,一來為了記錄以便下次遇到時(shí)進(jìn)行解決,

    2024年02月05日
    瀏覽(28)
  • 【VSCode】VScode 配置 Linux 驅(qū)動(dòng)環(huán)境(簡單版)

    【VSCode】VScode 配置 Linux 驅(qū)動(dòng)環(huán)境(簡單版)

    在開始編寫驅(qū)動(dòng)之前,我們需要保證良好的編碼環(huán)境,這里編寫代碼所使用的編輯器是VScode,如果進(jìn)行環(huán)境配置,可能會提示很多錯(cuò)誤,比如頭文件找不到、內(nèi)核函數(shù)的定義無法跳轉(zhuǎn)等等。 VScode 在這里只作為編輯器使用,配置的 是編輯環(huán)境 ,而 不是編譯環(huán)境 。 目錄 一、

    2024年02月08日
    瀏覽(23)
  • VSCode使用 - 搭建python運(yùn)行調(diào)試環(huán)境

    VSCode使用 - 搭建python運(yùn)行調(diào)試環(huán)境

    VSCode是一個(gè)優(yōu)秀的編輯工具,適合代碼閱讀,代碼編輯,甚至配置好之后,可以編譯與調(diào)試代碼。 為了方便編輯,運(yùn)行python程序,本文就聊聊如何將VSCode搭建為一個(gè)python的IDE吧,具備運(yùn)行與調(diào)試python程序的能力。 首先,安裝python程序,這樣才能進(jìn)行python開發(fā),我這里安裝了

    2024年02月12日
    瀏覽(31)
  • 【Linux驅(qū)動(dòng)】VScode 環(huán)境簡單配置

    【Linux驅(qū)動(dòng)】VScode 環(huán)境簡單配置

    在開始編寫驅(qū)動(dòng)之前,我們需要保證良好的編碼環(huán)境,這里編寫代碼所使用的編輯器是VScode,如果進(jìn)行環(huán)境配置,可能會提示很多錯(cuò)誤,比如頭文件找不到、內(nèi)核函數(shù)的定義無法跳轉(zhuǎn)等等。 VScode 在這里只作為編輯器使用,配置的 是編輯環(huán)境 ,而 不是編譯環(huán)境 。 目錄 一、

    2024年02月14日
    瀏覽(18)
  • 基于VSCode的Linux內(nèi)核調(diào)試環(huán)境搭建以及start_kernel跟蹤分析

    基于VSCode的Linux內(nèi)核調(diào)試環(huán)境搭建以及start_kernel跟蹤分析

    參考ppt的步驟: 準(zhǔn)備工作:1-5 ,配置vscode環(huán)境:6 ,跟蹤分析:7。 目錄 1.安裝開發(fā)工具 ?2.下載內(nèi)核源碼 ?3.配置內(nèi)核選項(xiàng) 4.編譯和運(yùn)行內(nèi)核 5.制作內(nèi)存根文件系統(tǒng) *gdb調(diào)試(可跳過) ?7.配置VSCode調(diào)試Linux內(nèi)核 ?7.跟蹤分析 下載出現(xiàn)了“Axel -n 20 :太多重定向”的問題,原因是

    2023年04月17日
    瀏覽(44)
  • js逆向補(bǔ)環(huán)境-調(diào)試工具vscode與nodejs使用之無環(huán)境聯(lián)調(diào)

    js逆向補(bǔ)環(huán)境-調(diào)試工具vscode與nodejs使用之無環(huán)境聯(lián)調(diào)

    一、啊哈 js逆向補(bǔ)環(huán)境時(shí),經(jīng)常會調(diào)試js,調(diào)試js依賴的環(huán)境可以選擇如下兩個(gè)nodejs和vscode;通過這篇文章簡單了解下安裝以及簡單的使用 以下來自我以前寫的兩篇文章舊文章合集內(nèi)容基本一致,只是統(tǒng)一更新下匯總到這篇文章了,所以也可以移步查看 nodejs在windows和linux下安

    2024年02月14日
    瀏覽(22)
  • 使用vscode 連接服務(wù)器 進(jìn)行深度學(xué)習(xí)代碼調(diào)試

    使用vscode 連接服務(wù)器 進(jìn)行深度學(xué)習(xí)代碼調(diào)試

    博主本來在Win上已經(jīng)配好環(huán)境了,但是在跑代碼的過程中,因?yàn)閠ensor拼接得太大了,導(dǎo)致筆記本內(nèi)存不足,因此需要到服務(wù)器上跑 為什么選擇vscode? 如果直接用xshell連接服務(wù)器,在命令行運(yùn)行py文件,不是很直觀,也不能debug,還不能直接輸出圖片。 pycharm連接服務(wù)器好像要

    2024年02月22日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包