ubuntu+vscode构建c++开发调试环境

2023-11-08

1.vscode下载与安装

下载 Visual Studio Code - Mac, Linux, Windows下载deb文件

#运行指令安装vscode
sudo dpkg -i xxx.deb

#如果报 dpkg: 错误: 另外一个进程已经为 dpkg frontend lock 加锁
ps -e | grep apt
#查看占用进程PID
sudo kill -9 pid

安装完成后,搜索vscode,打开即可。

2.插件安装

C/C++ #开发必备
C/C++ Advanced Lint #静态检查
C/C++ Extension Pack #扩展包
C/C++ Snippets #常用代码片段
Error Lens #错误高亮显示
Include AutoComplete #头文件自动补全
Code Runner #运行


Better C++ Synatx
C/C++ Themes
Chinese(Simplified)
CMake
CMake Tools
compareit
Git Graph

3.开启

1> 新建文件夹,在vscode中打开文件夹

2> 新建文件hello.cpp

#include <iostream>
#include <string>
using namespace std;

int main()
{
    cout<<"hello world"<<endl;
    return 0;
}

3> 点击vscode右上角齿轮添加调试配置,c++项目选择"C/C++: g++ 生成和调试活动文件",发现项目中生成luanch.json和tasks.json文件,tasks.json注意"arg",编译的cpp文件,生成的项目名称在此处配置,luanch.json注意"program",调试运行的项目名称。

一般单文件项目默认即可。

######################luanch.json#################
{
    "configurations": [
        {
            "name": "C/C++: g++ 生成和调试活动文件",
            "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": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++ 生成活动文件",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ],
    "version": "2.0.0"
}
######################tasks.json#################
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

*******"-g",后面跟编译文件名
*******"-o",后面跟输出文件名(launch.json和tasks.json中此处需一致)
*******注意,如果项目存在依赖项如pthread,则在args中需要添加该依赖项-pthread

如果为多文件项目,如增加common

******特别注意,新建文件不要在.vscode目录***********
*******common.h********
namespace common
{
    int add(int m, int n);
}


*******common.cpp******
#include "common.h"
int common::add(int m, int n)
{
    return m + n;
}


*******hello.cpp*******
#include <iostream>
#include <string>
#include "common.h"
using namespace std;

int main()
{
    cout<<"hello world"<<endl;
    cout<<common::add(2,3)<<endl;
    return 0;
}
*********修改tasks.json*******
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}", "common.cpp",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

按Ctrl+Shift+B生成项目,调试运行都可,示例输出hello world  5。

4.vscode常用快捷键

1>注释

注释:
单行:ctrl+/
     ctrl+k+u
块:shift+ctrl+a

2>选中代码格式化

格式化选定代码 :ctrl + k + f

3> 全局查找文件

全局查找文件:ctrl + shift + f

4> 折叠代码

折叠代码: ctrl + k + 0-9 (0是完全折叠)

5>展开代码

展开代码: ctrl + k + j (完全展开代码)

也可以在左下角设置中自定义快捷键。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu+vscode构建c++开发调试环境 的相关文章

随机推荐

  • CUDA 基础 01 - 概念

    最近在GPU编译器测试方面遇到一些瓶颈 准备学习下cuda 相关的基础知识 warp sm index grid等 CPU VS GPU GPU最重要的一点是可以并行的实现数据处理 这一点在数据量大 运算复杂度不高的条件下极为适用 可以简单
  • 3 Ubuntu上使用Qt运行多线程,设置程序自启动及保护脚本

    Ubuntu上使用Qt运行多线程 设置程序自启动及保护脚本 多线程 自启动及保护脚本 自启动及保护脚本 结束自启动脚本 脚本程序简单说明 设置自启动 多线程 使用多线程时我们需要加入 include lt thread gt 这个头文件包含
  • 区块链常见的几大共识机制

    区块链技术被广泛应用于许多领域 其中共识机制是构成区块链系统的核心部分 共识机制是指用来维护区块链数据一致性 安全性和可靠性的机制 常见的区块链共识机制有以下几种 1 工作量证明 Proof of Work 是最早的共识机制 它将矿工通过解
  • 毕业设计-基于机器视觉的交通标志识别系统

    目录 前言 课题背景和意义 实现技术思路 一 交通标志识别系统 二 交通标志识别整体方案 三 实验分析 四 总结 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计
  • 开源项目Tinyhttp项目源码详解

    HTTP协议 http协议叫做超文本传输协议 是基于tcp ic协议的应用层协议 具体内容可以借鉴这一篇博客 https blog csdn net qq 36894974 article details 103930478 本文主要涉及T
  • [人工智能-深度学习-33]:卷积神经网络CNN - 常见分类网络- LeNet网络结构分析与详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120893764 目录 第1章 卷积神
  • Ubuntu14.04安装配置NFS用于挂载嵌入式文件系统

    Ubuntu14 04安装配置NFS用于挂载嵌入式文件系统 1 安装 sudo apt get install nfs kernel server rpcbind 2 配置 vi etc exports 在文件的最后一行加上 yaffs2
  • 获取随机位数阿拉伯数字

    int Math random 9 1 1000 这里是随机4位数 需要几位数 就乘以几个零 int Math random 9 1 100 随机3位数 int Math random 9 1 10 随机2位数 来个方法吧 获取随机位数的阿
  • IPSec 基础介绍

    IPSec是IETF Internet Engineering Task Force 制定的一组开放的网络安全协议 它并不是一个单独的协议 而是一系列为IP网络提供安全性的协议和服务的集合 包括认证头AH Authentication He
  • python TimedRotatingFileHandler 配置参数 (转)

    TimedRotatingFileHandler这个模块是满足文件名按时间自动更换的需求 这样就可以保证日志单个文件不会太大 用法很简单 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 impo
  • python学习之【模块】

    前言 上一篇文章 python学习之 深拷贝 中学习了python中的深浅拷贝学习内容 这篇文章接着学习python中的模块 什么是模块 在python中 一个文件 以 py 为后缀名的文件 就叫做一个模块 每一个模块在python里都被看
  • 群晖做网页服务器_群晖NAS软件DS get介绍及使用方法教程

    我的NAS介绍第二篇 群晖NAS软件介绍与应用之DS get篇前言 1 为什么选择NAS之所以我现在建议大家选择NAS 不仅仅因为网盘的不稳定性和不安全性 遇到和谐大神不说 网盘也经历了各种风风雨雨 从和谐到倒闭不过一步之遥 大家都懂的 还
  • Mysql-连接https域名的Mysql数据源踩的坑

    背景介绍 大家在实际项目中 大部分都会用到关系数据库mysql 通常数据库服务器提供的都是ip的方式 所以不会出现本文涉及到的https域名的问题 本文介绍的是基于数据库服务器是分配了指定域名且有ssl证书的https 连接数据源 遇到的问
  • java面向对象基础练习--实现简单的图书管理系统

    这个系统使用的是java的基础语法 没有使用数据库 实现图书管理系统基础的查询 增加 删除 借阅 归还 打印 退出功能 这个小项目作为我java基础语法的综合运用 主要是为了建立面向对象编程的思想 培养编程习惯 如果有错误或者更好的实现方法
  • 深入详解ThreadLocal

    本文已收录至GitHub 推荐阅读 Java随想录 微信公众号 Java随想录 原创不易 注重版权 转载请注明原作者和原文链接 文章目录 什么是ThreadLocal ThreadLocal 原理 set方法 get方法 remove方法
  • 又回来了

    又回来了 一年多没有来了 再次回来还是感觉那么熟悉 那么亲切 怀念以前在学校的日子 怀念苦苦思索技术的日子 除了学习没有繁杂的社会关系要处理 单纯快乐着 为了一个小小的技术难题 愿意不吃不喝去摸索 去测试 在成功的那一刻忘记了一切疲倦和劳累
  • c++ 实现数据库连接池

    c 实现数据库连接池 自己尝试用c 新标准实现了数据库连接池 代码简化了很多 思路 将数据库的连接当作一个对象添加进list队列中 在连接池创建的时候就建立好队列 并添加自定义大小的连接对象 连接对象用智能指针来管理 现代c 中不应该出现d
  • Api接口版本管理实现

    Api接口版本管理实现 引言 实现 RequestCondition 实现代码 ApiVersion注解 ApiVersionRequestCondition 版本匹配 ApiVersionHandlerMapping 将condition
  • fastjson对泛型的反序列化

    文章目录 具体告警分析 告警影响 fastjson未指定泛型具体类型 fastjson TypeReference指定泛型具体类型 可以看到fastjson反序列化时IDEA提示告警 Unchecked assignment 怎么解决这个告
  • ubuntu+vscode构建c++开发调试环境

    1 vscode下载与安装 下载 Visual Studio Code Mac Linux Windows下载deb文件 运行指令安装vscode sudo dpkg i xxx deb 如果报 dpkg 错误 另外一个进程已经为 dpkg