ubuntu18.04下vscode使用CMakeLists管理C++项目并断点调试

ubuntu18.04下vscode使用CMakeLists管理C++项目并断点调试

  • 1 安装插件
  • 2 创建项目目录
  • 3 添加源代码文件
  • 4 初始化CMake项目配置
  • 5 添加子目录CMakeLists.txt
  • 6 配置断点调试
  • 7 配置编译调试
  • 9 下断点调试

1 安装插件

在vscode中安装C/C++ IntelliSense和CMake扩展。
在这里插入图片描述

2 创建项目目录

在本地磁盘上创建一个目录,如我本地/root/Documents/dechat,将dechat文件夹添加到vscode的工作空间workspace,如下:
在这里插入图片描述

3 添加源代码文件

为了演示方便,我们在dechat根目录下程序入口文件main.cpp和一个文件夹src,在src下添加类文件worker.h、worker.cpp。在src下添加子文件夹util, util文件夹下添加一个数学类文件dcmath.h、dcmath.cpp。项目目录结构如下:
在这里插入图片描述

4 初始化CMake项目配置

按下Ctrl+Shift+P,在弹出的对话框中选择CMake: Quick Start
在这里插入图片描述
输入项目名称
在这里插入图片描述
选择C++项目类型
在这里插入图片描述
选择可执行程序类型
在这里插入图片描述
此时在dechat目录下生成CMakeLists.txt文件和build目录
在这里插入图片描述

5 添加子目录CMakeLists.txt

在子目录util下添加文件CMakeLists.txt,编辑内容如下:

add_library(utilTarget
    DCMath.cpp
)

target_include_directories(utilTarget PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

在这里插入图片描述
接着,需要在主CMakeLists.txt添加对子目录的引用,如下

# add sub dir
add_subdirectory(src/util)

# add include dir
target_include_directories(${deamon_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})

# link sub targets
target_link_libraries(${deamon_name} utilTarget)

在这里插入图片描述

6 配置断点调试

点击vscode左侧边栏run and debug按钮,创建一个调试配置文件lunch.json,将program改为"program": "${workspaceFolder}/build/dechat", 如下图
在这里插入图片描述

7 配置编译调试

按下Ctrl+Shift+P,在弹出的对话框中输入Tasks, 选择Tasks: Configure Tasks, 在.vscode目录下生成tasks.json,
在这里插入图片描述

在launch.json加入一行"preLaunchTask": "Build_label"

在这里插入图片描述

9 下断点调试

在main.cpp下一个断点,点击Start Debugging按钮或按F5,则项目将被编译并运行,程序运行到断点则进入调试状态。
在这里插入图片描述