欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間: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)試流程以及跨平臺(tái)兼容性,配置了`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)一存放到項(xiàng)目的 build 目錄。
  • 優(yōu)化調(diào)試流程:調(diào)試器自動(dòng)定位 build 中的可執(zhí)行文件,免去手動(dòng)調(diào)整路徑的麻煩。
  • 跨平臺(tái)兼容性:確保配置適用于 Ubuntu 和其他類 Unix 系統(tǒng)。

前提條件

在開始之前,請(qǐ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)建項(xiàng)目目錄結(jié)構(gòu)

建議項(xiàng)目目錄結(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)建一個(gè)簡單的 main.cpp

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

配置 tasks.json 文件路徑

tasks.json 保存到項(xiàng)目目錄下的 .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",   // 彩色錯(cuò)誤提示
                "-g",                          // 啟用調(diào)試信息
                "${workspaceFolder}/src/${fileBasename}", // 指定源文件路徑
                "-o",                          // 輸出選項(xiàng)
                "${workspaceFolder}/build/${fileBasenameNoExtension}" // 輸出文件路徑
            ],
            "options": {
                "cwd": "${workspaceFolder}"     // 設(shè)置工作目錄為項(xiàng)目根目錄
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true              // 默認(rèn)構(gòu)建任務(wù)
            },
            "detail": "將當(dāng)前活動(dòng)文件編譯到 build 目錄中"
        }
    ]
}

關(guān)鍵解釋

  • ${workspaceFolder}:指代項(xiàng)目根目錄。
  • ${fileBasename}:當(dāng)前活動(dòng)文件的文件名(包括擴(kuò)展名)。
  • ${fileBasenameNoExtension}:當(dāng)前活動(dòng)文件的文件名(不包括擴(kuò)展名)。
  • -g:開啟調(diào)試符號(hà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)試時(shí)的工作目錄
      "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:動(dòng)態(tài)指向 build 目錄中的可執(zhí)行文件,自動(dòng)根據(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)行 -> 啟動(dòng)調(diào)試
  • 程序?qū)⒃?build 目錄下運(yùn)行,調(diào)試器會(huì)附加到進(jìn)程。

常見問題排查

問題 1:g++gdb 未安裝

解決方法

sudo apt install g++ gdb

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

解決方法

mkdir -p buildchmod +w build

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

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

最終效果總結(jié)

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

祝你使用愉快!

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

相關(guān)文章

  • C語言中char*和char[]用法區(qū)別分析

    C語言中char*和char[]用法區(qū)別分析

    這篇文章主要介紹了C語言中char*和char[]用法區(qū)別,包括使用過程中的誤區(qū)及注意點(diǎn)分析,需要的朋友可以參考下
    2014-09-09
  • C語言中結(jié)構(gòu)體和共用體實(shí)例教程

    C語言中結(jié)構(gòu)體和共用體實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于C語言中結(jié)構(gòu)體和共用體的相關(guān)資料,結(jié)構(gòu)體是一種自定義的復(fù)合數(shù)據(jù)類型,共用體也叫聯(lián)合體,使幾個(gè)不同類型的變量共占一段內(nèi)存(相互覆蓋),需要的朋友可以參考下
    2021-06-06
  • C++實(shí)現(xiàn)通訊錄管理系統(tǒng)

    C++實(shí)現(xiàn)通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 基于C語言實(shí)現(xiàn)的掃雷游戲代碼

    基于C語言實(shí)現(xiàn)的掃雷游戲代碼

    這篇文章主要介紹了基于C語言實(shí)現(xiàn)的掃雷游戲代碼,對(duì)于學(xué)習(xí)游戲開發(fā)的朋友有一定的借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • C++ Assert()斷言機(jī)制原理以及使用方法

    C++ Assert()斷言機(jī)制原理以及使用方法

    下面小編就為大家?guī)硪黄狢++ Assert()斷言機(jī)制原理以及使用方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • 輸入一個(gè)字符串,取出其中的整數(shù)(實(shí)現(xiàn)代碼)

    輸入一個(gè)字符串,取出其中的整數(shù)(實(shí)現(xiàn)代碼)

    輸入一個(gè)字符串,內(nèi)含所有數(shù)字和非數(shù)字字符。將其中連續(xù)的數(shù)字作為一個(gè)整數(shù),依次存放到一個(gè)數(shù)組中,統(tǒng)計(jì)共有多少個(gè)整數(shù),并輸出這些數(shù)
    2013-09-09
  • c++中struct和class的區(qū)別小結(jié)

    c++中struct和class的區(qū)別小結(jié)

    在C++中,class和struct都是用于定義自定義數(shù)據(jù)類型的關(guān)鍵字,本文主要介紹了c++中struct和class的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • string居然也可以用<<和>>

    string居然也可以用<<和>>

    今天小編就為大家分享一篇關(guān)于string居然也可以用<<和>>,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 利用C語言實(shí)現(xiàn)猜數(shù)字游戲

    利用C語言實(shí)現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細(xì)介紹了利用C語言實(shí)現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • C++常用的#include頭文件總結(jié)

    C++常用的#include頭文件總結(jié)

    這篇文章主要介紹了C++常用的#include頭文件,對(duì)初學(xué)者理解C++程序設(shè)計(jì)大有好處的相關(guān)資料
    2014-07-07

最新評(píng)論