一、安装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
5882

被折叠的 条评论
为什么被折叠?



