ubuntu18.04下vscode使用CMakeLists管理C++项目并断点调试
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,则项目将被编译并运行,程序运行到断点则进入调试状态。