最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ubuntu 環(huán)境下的 C/C++ 編譯與調(diào)試配置方法

 更新時間:2024年11月28日 11:49:10   作者:FHKHH  
本文檔詳細(xì)介紹了如何在Ubuntu環(huán)境中使用VSCode進(jìn)行C/C++的編譯與調(diào)試配置,通過配置`tasks.json`和`launch.json`,實(shí)現(xiàn)了統(tǒng)一管理輸出文件、優(yōu)化調(diào)試流程以及跨平臺兼容性,配置了`g++`編譯器和`gdb`調(diào)試器,并使用C/C++插件來提高開發(fā)效率,感興趣的朋友跟隨小編一起看看吧

詳細(xì)教學(xué)文檔:Ubuntu 環(huán)境下的 C/C++ 編譯與調(diào)試配置

本文檔將手把手引導(dǎo)你完成在 Ubuntu 環(huán)境中設(shè)置 VS Code 的 tasks.jsonlaunch.json,實(shí)現(xiàn)以下目標(biāo):

  • 統(tǒng)一管理輸出文件:將所有編譯生成的可執(zhí)行文件統(tǒng)一存放到項目的 build 目錄。
  • 優(yōu)化調(diào)試流程:調(diào)試器自動定位 build 中的可執(zhí)行文件,免去手動調(diào)整路徑的麻煩。
  • 跨平臺兼容性:確保配置適用于 Ubuntu 和其他類 Unix 系統(tǒng)。

前提條件

在開始之前,請確保系統(tǒng)已安裝以下工具:

g++ 編譯器
安裝命令:

sudo apt install g++

gdb 調(diào)試器
安裝命令:

sudo apt install gdb

VS Code 擴(kuò)展

C/C++ 插件(Microsoft 提供):在擴(kuò)展市場中搜索 “C/C++” 并安裝。

創(chuàng)建項目目錄結(jié)構(gòu)

建議項目目錄結(jié)構(gòu)如下:

project-root/
├── build/           # 編譯生成的可執(zhí)行文件目錄
├── src/             # 源代碼文件目錄
│   ├── main.cpp     # 示例源代碼文件
├── tasks.json       # VS Code 任務(wù)配置文件
└── launch.json      # VS Code 調(diào)試配置文件

執(zhí)行以下命令創(chuàng)建目錄結(jié)構(gòu):

mkdir -p project-root/build
mkdir -p project-root/src

將你的源代碼放入 src 目錄,例如創(chuàng)建一個簡單的 main.cpp

#include <iostream>
int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

配置 tasks.json 文件路徑

tasks.json 保存到項目目錄下的 .vscode 文件夾中。如果文件夾不存在,使用以下命令創(chuàng)建:

mkdir -p project-root/.vscode
touch project-root/.vscode/tasks.json

完整配置內(nèi)容

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 編譯到 build 目錄 (Ubuntu)",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",   // 彩色錯誤提示
                "-g",                          // 啟用調(diào)試信息
                "${workspaceFolder}/src/${fileBasename}", // 指定源文件路徑
                "-o",                          // 輸出選項
                "${workspaceFolder}/build/${fileBasenameNoExtension}" // 輸出文件路徑
            ],
            "options": {
                "cwd": "${workspaceFolder}"     // 設(shè)置工作目錄為項目根目錄
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true              // 默認(rèn)構(gòu)建任務(wù)
            },
            "detail": "將當(dāng)前活動文件編譯到 build 目錄中"
        }
    ]
}

關(guān)鍵解釋

  • ${workspaceFolder}:指代項目根目錄。
  • ${fileBasename}:當(dāng)前活動文件的文件名(包括擴(kuò)展名)。
  • ${fileBasenameNoExtension}:當(dāng)前活動文件的文件名(不包括擴(kuò)展名)。
  • -g:開啟調(diào)試符號,支持調(diào)試功能。

配置 launch.json 文件路徑

launch.json 保存到 .vscode 文件夾中:

touch project-root/.vscode/launch.json

完整配置內(nèi)容

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++ Runner: Debug Session",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/build/${fileBasenameNoExtension}", // 指向 build 中的可執(zhí)行文件
      "args": [],                           // 可選參數(shù),留空
      "stopAtEntry": false,                 // 是否在入口處停止
      "cwd": "${workspaceFolder}/build",    // 調(diào)試時的工作目錄
      "environment": [],                    // 環(huán)境變量
      "externalConsole": false,             // 使用內(nèi)嵌終端
      "MIMode": "gdb",                      // 使用 gdb 調(diào)試
      "miDebuggerPath": "/usr/bin/gdb",     // gdb 路徑
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

關(guān)鍵解釋

  • program:動態(tài)指向 build 目錄中的可執(zhí)行文件,自動根據(jù)源文件名匹配。
  • cwd:調(diào)試器工作目錄,設(shè)置為 build。
  • miDebuggerPath:指定調(diào)試器路徑。

使用步驟

1. 編譯程序

  • 打開源文件,例如 src/main.cpp
  • 按快捷鍵 Ctrl + Shift + B 或從菜單中選擇 任務(wù) -> 運(yùn)行任務(wù)。
  • 確??蓤?zhí)行文件生成到 build 目錄,例如 build/main。

2. 調(diào)試程序

  • 按快捷鍵 F5 或從菜單中選擇 運(yùn)行 -> 啟動調(diào)試。
  • 程序?qū)⒃?build 目錄下運(yùn)行,調(diào)試器會附加到進(jìn)程。

常見問題排查

問題 1:g++gdb 未安裝

解決方法

sudo apt install g++ gdb

問題 2:build 目錄不存在或無寫權(quán)限

解決方法

mkdir -p buildchmod +w build

問題 3:調(diào)試時程序無法找到輸入文件

原因:默認(rèn)工作目錄為 build。
解決方法:將輸入文件復(fù)制到 build 目錄,或使用絕對路徑。

最終效果總結(jié)

  • 統(tǒng)一輸出路徑:所有可執(zhí)行文件存儲在 build 目錄,管理更清晰。
  • 一鍵調(diào)試:按 F5 即可運(yùn)行調(diào)試,無需手動配置路徑。
  • 易于擴(kuò)展:適用于多文件項目,通過修改 tasks.jsonargs 增加編譯參數(shù)即可支持復(fù)雜構(gòu)建需求。

祝你使用愉快!

到此這篇關(guān)于Ubuntu 環(huán)境下的 C/C++ 編譯與調(diào)試配置的文章就介紹到這了,更多相關(guān)Ubuntu 編譯調(diào)試 C++內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入講解C++中的構(gòu)造函數(shù)

    深入講解C++中的構(gòu)造函數(shù)

    這篇文章主要介紹了C++中的構(gòu)造函數(shù),是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C++全密碼生成的實(shí)現(xiàn)代碼

    C++全密碼生成的實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了C++全密碼生成的實(shí)現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • C語言常用標(biāo)準(zhǔn)頭文件使用實(shí)例

    C語言常用標(biāo)準(zhǔn)頭文件使用實(shí)例

    在C的系列語言程序中,頭文件(通常擴(kuò)展名為.h)被大量使用,它通常包含函數(shù)、變量、結(jié)構(gòu)體等的聲明和定義,以及一些宏定義和類型定義,這篇文章主要給大家介紹了關(guān)于C語言常用標(biāo)準(zhǔn)頭文件使用的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • 關(guān)于C++中void*的小作用淺析

    關(guān)于C++中void*的小作用淺析

    這篇文章主要給大家介紹了關(guān)于C++中void*的一些小作用,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • C++浮點(diǎn)型的存儲方式詳解

    C++浮點(diǎn)型的存儲方式詳解

    本篇文章是對C/C++浮點(diǎn)數(shù)在內(nèi)存中的存儲方式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下,希望能夠給你帶來幫助
    2021-09-09
  • QT自定義QTextEdit實(shí)現(xiàn)大數(shù)據(jù)的實(shí)時刷新顯示功能實(shí)例

    QT自定義QTextEdit實(shí)現(xiàn)大數(shù)據(jù)的實(shí)時刷新顯示功能實(shí)例

    TextEdit是我們常用的Qt控件,用來顯示文本信息,下面這篇文章主要給大家介紹了關(guān)于QT自定義QTextEdit實(shí)現(xiàn)大數(shù)據(jù)的實(shí)時刷新顯示功能的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • C++ Boost Exception超詳細(xì)講解

    C++ Boost Exception超詳細(xì)講解

    Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱
    2022-11-11
  • C語言中數(shù)據(jù)結(jié)構(gòu)之鏈表歸并排序?qū)嵗a

    C語言中數(shù)據(jù)結(jié)構(gòu)之鏈表歸并排序?qū)嵗a

    這篇文章主要介紹了C語言中數(shù)據(jù)結(jié)構(gòu)之鏈表歸并排序?qū)嵗a的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 純C語言:遞歸組合數(shù)源碼分享

    純C語言:遞歸組合數(shù)源碼分享

    這篇文章主要介紹了純C語言:遞歸組合數(shù)源碼,有需要的朋友可以參考一下
    2014-01-01
  • C++基礎(chǔ)入門教程(一):基礎(chǔ)知識大雜燴

    C++基礎(chǔ)入門教程(一):基礎(chǔ)知識大雜燴

    這篇文章主要介紹了C++基礎(chǔ)入門教程(一):基礎(chǔ)知識大雜燴,本文講解了注釋、頭文件、命名空間等內(nèi)容,需要的朋友可以參考下
    2014-11-11

最新評論

青川县| 宝丰县| 罗田县| 辉南县| 民勤县| 勃利县| 桦南县| 阳高县| 柯坪县| 当雄县| 二手房| 新晃| 大埔县| 麻栗坡县| 上林县| 西平县| 洮南市| 庄浪县| 犍为县| 诏安县| 清水县| 武夷山市| 南和县| 塔城市| 彭州市| 龙南县| 视频| 南靖县| 宣汉县| 青浦区| 叙永县| 维西| 启东市| 拉萨市| 延庆县| 高密市| 嘉义县| 淅川县| 黔南| 新巴尔虎左旗| 洛宁县|