VSCode配置C++的Debug环境

一、安装vscode及必要插件 对于C++安装如下插件就可以

 二 、创建项目

创建一个简单的项目,目录结构如下:

Gun.h:

#pragma once
#include <iostream>

class Gun
{
public:
    Gun(std::string type);
    void AddBullet(int bullet_num);
    bool Shoot();

private:
    int bullet_count_;
    std::string type_;
};

Gun.cpp

#include "Gun.h"

Gun::Gun(std::string type):type_(type),bullet_count_(0)
{

}

void Gun::AddBullet(int bullet_num)
{
    bullet_count_ += bullet_num;
    std::cout << "子弹数:" << bullet_count_ << std::endl;
}

bool Gun::Shoot()
{
    if(bullet_count_<=0)
    {
        std::cout << "There is no bullet!" << std::endl;
        return false;
    }

    --bullet_count_;
    std::cout << "shoot successfully" << std::endl;
    std::cout << "子弹数:" << bullet_count_ << std::endl;
    return true;
}

Solider.h:

#pragma once

#include<iostream>
#include<memory>
#include<string>
#include"Gun.h"

class Solider
{
public:
    Solider(std::string name);
    void AddGun(std::shared_ptr<Gun> gun);
    void addBulletToGun(int num);
    bool fire();

private:
    std::string name_;
    int a = 2;
    std::shared_ptr<Gun> gun_ptr_;
};

Solider.cpp:

#include"Soldier.h"

Solider::Solider(std::string name):name_(name)
{
    
}


void Solider::AddGun(std::shared_ptr<Gun> gun)
{
    gun_ptr_ = gun;
}

void Solider::addBulletToGun(int num)
{
    gun_ptr_->AddBullet(num);
}
bool Solider::fire()
{
    return gun_ptr_->Shoot();
}

main.cpp:

#include"Soldier.h"
#include "Gun.h"
#include<iostream>
using namespace std;
void test()
{
    Solider sanduo("xusanduo");
    sanduo.AddGun(std::make_shared<Gun>("AK47"));
    sanduo.addBulletToGun(20);
    sanduo.fire();
}
int main()
{
    //workspaceFolder
    test();
    return 0;
}

CMakeLists.txt:   都添加了必要的注释

#指定cmake最小版本
cmake_minimum_required(VERSION 3.0)
#项目名称  ${PROJECT_NAME}就是表示自己设置的war
project(war)

#c++标准11编译
set(CMAKE_CXX_STANDARD 11)
#假如没有找到11标准就会报错,可以不写
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
#set设置输出所有警告  "${CMAKE_CXX_FLAGS} -Wall" 这个参数表示在原本的CMAKE_CXX_FLAGS后边再加上 -Wall,相当于追加的效果;  
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
#设置为调试模式  这个一定要加
set(CMAKE_BUILD_TYPE Debug) 
#包含头文件的路径    ${CMAKE_SOURCE_DIR}这个表示CMakeLists.txt所在的目录
include_directories(${CMAKE_SOURCE_DIR}/include)
#参数GLOB_RECURSE表示递归寻找,将src目录下所有的.cpp文件 都使用SRCS表示
file(GLOB_RECURSE SRCS "src/*.cpp")

#添加可执行文件   main.cpp 和SRCS
add_executable(${PROJECT_NAME} main.cpp ${SRCS})

三 、编译项目:

mkdir build
cd build
cmake ..
make

编译完成,并执行代码,代码没问题,正确运行。

\documentclass{article}
\begin{document}
\section{主标题}
\subsection{副标题}
\subsubsection{次级副标题}
\end{document}
 

四、配置launch.jason文件:

1、点击右上角齿轮,如下所示:

2、会出现如下选项,我们是c++项目,所以选择第二个g++ :

会自动创建launch.jason,如下所示:

 3、设置可执行文件路径:

修改如下所示:

同时要把调试会话前要开始运行的任务注释调,位置如下所示:

五、开始调试:

在程序任意位置打断点,按F5,进入调试模式,如下所示:

这样就完成了。

参考来源:【Linux 之基于VSCode和CMake实现C/C++开发与调试 环境配置 GDB 多文件开发】 https://www.bilibili.com/video/BV1fy4y1b7TC/?share_source=copy_web

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值