Z
ZHANK
编程在线教程C++ 教程开发工具:CMake 与调试器
入门基础

开发工具: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 扩展后:

  1. 打开含 CMakeLists.txt 的项目
  2. 底部状态栏选择编译器(Kit)
  3. 点击 "Build" → "Run" → "Debug" — 一键完成

💡 现代 C++ 开发三件套:CMake(构建)、gdb/lldb(调试)、sanitizer(运行时检测):g++ -fsanitize=address -g main.cpp