开发工具:CMake 与调试器
CMake 构建系统入门、gdb 调试 C++ 程序、VS Code 调试配置
开发工具:CMake 与调试器
C++ 项目一旦跨平台,手写 Makefile 就很痛苦。CMake 是事实上的标准构建系统——写一次,到处编译。
学完本章你将: 掌握 CMake 基础、gdb 调试 C++、VS Code 调试配置。
CMake —— 跨平台构建
最简单的 CMakeLists.txt
cmake
cmake_minimum_required(VERSION 3.15)
project(HelloCpp)
set(CMAKE_CXX_STANDARD 17)
add_executable(hello main.cpp)
bash
# 构建(推荐:构建目录与源码分离)
mkdir build && cd build
cmake ..
cmake --build .
./hello
# 或指定生成器
cmake -G "MinGW Makefiles" .. # Windows MinGW
cmake -G "Unix Makefiles" .. # Linux
多文件 + 库
cmake
cmake_minimum_required(VERSION 3.15)
project(MyApp)
set(CMAKE_CXX_STANDARD 17)
# 库
add_library(mylib STATIC lib/mylib.cpp)
# 可执行文件
add_executable(app main.cpp)
target_link_libraries(app PRIVATE mylib)
gdb 调试 C++
C++ 调试和 C 一样用 gdb,但多了对类、模板、STL 容器的支持:
bash
g++ -g -std=c++17 main.cpp -o main
gdb ./main
gdb
break main
run
print vec # 查看 vector
print vec.size() # 调用方法
p vec[0] # 查看元素
bt # 调用栈
VS Code 调试
.vscode/launch.json:
json
{
"configurations": [{
"name": "C++ Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/main",
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"MIMode": "gdb"
}]
}
CMake + VS Code 整合
安装 CMake Tools 扩展后:
- 打开含
CMakeLists.txt的项目 - 底部状态栏选择编译器(Kit)
- 点击 "Build" → "Run" → "Debug" — 一键完成
💡 现代 C++ 开发三件套:CMake(构建)、gdb/lldb(调试)、sanitizer(运行时检测):
g++ -fsanitize=address -g main.cpp。