日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

vscode / ubuntu 下编译和调试 C/C++ 方法

發(fā)布時間:2024/10/14 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vscode / ubuntu 下编译和调试 C/C++ 方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

零、前言

之前一直將 vscode 做為簡單的編輯器使用,對編譯調(diào)試一知半解,現(xiàn)在有時間好好整理了,咱們開始吧。

一、準(zhǔn)備

需要安裝 C/C++ 開發(fā)插件:

Ctrl + p,在彈出的編輯框中輸入如下:

ext install cpptools

裝完之后重啟。

二、編寫配置文件

需要編寫的配置文件如下:

tasks.json:這個配置文件是用來執(zhí)行你預(yù)定的任務(wù)的,比如說你修改了你的代碼,調(diào)試之前,肯定要重新生成新的程序后再調(diào)試,那么你就可以配置它告訴 vscode 怎么重新生成這個新的程序。(task.json 不是必須文件,比如 python 調(diào)試,可以不用提前編譯)

launch.json :這個配置文件是告訴 vscode 如何來啟動調(diào)試你的代碼程序的,這其中包括你的程序在哪個位置,你用什么工具來調(diào)試,調(diào)試的時候需要給調(diào)試工具傳什么參數(shù)等。

c_cpp_properties.json:顧名思義,配置 C/C++ 屬性。

簡單方法是如下圖所示,點(diǎn)擊運(yùn)行按鈕

然后選擇 gdb,g++ ,vscode 會自動創(chuàng)建 .vscode 文件夾和 tasks.json 和 launch.json 文件。

默認(rèn)配置如下:

tasks.json

{"tasks": [{// type 告訴 vscode 編譯器的類型。"type": "cppbuild",// task 的名字,在 launch.json 內(nèi)根據(jù)此任務(wù)名調(diào)用此任務(wù);"label": "C/C++: g++ 生成活動文件",//該任務(wù)需要具體執(zhí)行的命令。"command": "/usr/bin/g++",//上述命令需要傳入的參數(shù)。"args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"options": {"cwd": "${fileDirname}"},//設(shè)置捕獲錯誤的工具。"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "調(diào)試器生成的任務(wù)。"}],"version": "2.0.0" }

launch.json?

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "g++ - 生成和調(diào)試活動文件",// type 告訴 vscode 編譯器的類型,使用 gcc 編譯器族的是 cppdgb// 這個是規(guī)定的,不是隨便寫,比如 msvc 編譯器就是 cppvsdbg 。"type": "cppdbg",//執(zhí)行當(dāng)前文件。"request": "launch",// program 這個是你的可執(zhí)行程序位置,這里可以根據(jù)自己的 tasks.json 生成// 程序的位置自定義修改。"program": "${fileDirname}/${fileBasenameNoExtension}",// ${xxxx} 是 vscode 內(nèi)置的變量,可以方便獲取到需要的路徑或者文件名,// 這里列舉一部分// ${workspaceFolder} : 表示當(dāng)前 workspace 文件夾路徑,也即 /home/Coding/Test// ${workspaceRootFolderName} : 表示 workspace 的文件夾名,也即 Test// ${file} : 文件自身的絕對路徑,也即 /home/Coding/Test/.vscode/tasks.json// ${relativeFile} : 文件在 workspace 中的路徑,也即 .vscode/tasks.json// ${fileBasenameNoExtension} : 當(dāng)前文件的文件名,不帶后綴,也即 tasks// ${fileBasename} : 當(dāng)前文件的文件名,tasks.json// ${fileDirname} : 文件所在的文件夾路徑,也即 /home/Coding/Test/.vscode// ${fileExtname} : 當(dāng)前文件的后綴,也即 .json// ${lineNumber} : 當(dāng)前文件光標(biāo)所在的行號// ${env:PATH} : 系統(tǒng)中的環(huán)境變量"args": [],// 選為 true 則會在打開控制臺后停滯,暫時不執(zhí)行程序,一般選 false 。"stopAtEntry": false,//當(dāng)前執(zhí)行程序的路徑"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "為 gdb 啟用整齊打印","text": "-enable-pretty-printing","ignoreFailures": true}],// preLaunchTask 表示在 執(zhí)行調(diào)試前 要完成的任務(wù)。// 比如這里 要完成 “C/C++: g++ 生成活動文件” 這個 tasks 任務(wù)(重新生成程序)// 該名稱是 tasks.json 中 label 對應(yīng)的名稱,也就是 task 的名稱。// task 的名字,一定要跟 tasks.json 中 label 標(biāo)簽一致。"preLaunchTask": "C/C++: g++ 生成活動文件",// 調(diào)試器的路徑"miDebuggerPath": "/usr/bin/gdb"}] }

ctrl+shift+P?打開 Command Palette,運(yùn)行?C/Cpp: Edit configurations(json)?生成c_cpp_properties.json 文件,默認(rèn)如下:

{"configurations": [{// 一般是內(nèi)核的名字就可以了,如 "Linux" 。"name": "Linux",// 第三方庫的頭文件可以放在該位置,比如 qt 庫。"includePath": ["${workspaceFolder}/**"],// 全局宏放在該位置。"defines": [],"compilerPath": "/usr/bin/clang","cStandard": "c11","cppStandard": "c++14","intelliSenseMode": "linux-clang-x64"}],"version": 4 }

三、編寫代碼

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

四、編譯和調(diào)試

編譯指令:Ctrl + shift + B

調(diào)試指令:F5

編譯 + 調(diào)試:Ctrl + F5

五、其他

1、vscode 快捷鍵:

(1)Ctrl + P,在彈出的編輯框中可以做如下內(nèi)容:

  • 跳到指定的行號:":" + 行號
  • 搜索指定的符號,(例如:函數(shù)):"@" + 符號名
  • 搜索文件:直接輸入文件名稱即可。

(2)Ctrl + Shift + P

執(zhí)行內(nèi)置于 vscode 中的命令。

(3)Ctrl + O

打開當(dāng)前文件所在的資源管理器。

2、格式化代碼

安裝了 C/C++ 擴(kuò)展之后,擴(kuò)展程序?qū)⒆詣影惭b clang-format。所以配置 C/C++ 格式化代碼規(guī)則,實(shí)際上就是配置 clang-format ,這個后續(xù)補(bǔ)充。

參考:

https://blog.csdn.net/Taynpg/article/details/109072226

https://blog.csdn.net/u011947630/article/details/100888525

(完)

總結(jié)

以上是生活随笔為你收集整理的vscode / ubuntu 下编译和调试 C/C++ 方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。