01
编译环境搭建
GCC/G++安装与配置 · CMake基础 · Makefile入门 · 环境变量 · 多版本编译器
环境工具链
02
预处理实战
宏定义陷阱 · 条件编译 · 头文件优化 · 预定义宏 · #pragma用法
预处理器宏
03
编译优化入门
O0~O3详解 · 优化与调试 · 常见选项 · 优化与可读性
优化性能
04
链接错误解决
未定义引用 · 重复定义 · 符号解析失败 · 库链接顺序 · 静态/动态库冲突
链接错误排查
05
静态库实战
ar工具 · 静态库创建/链接 · 库选择 · 版本管理
静态库ar
06
动态库实战
共享库创建 · LD_LIBRARY_PATH · rpath · 版本控制 · dlopen
动态库加载
07
Makefile进阶
变量与函数 · 条件判断 · 自动推导 · 多目标 · 调试技巧
Makefile构建
08
CMake实战
CMakeLists.txt · find_package · 自定义目标 · 安装规则 · 交叉编译
CMake配置
09
编译警告处理
-Wall -Wextra -Werror · 消除警告 · 级别控制 · 第三方库屏蔽
警告质量
10
内存错误调试
AddressSanitizer · Valgrind · 内存泄漏 · 越界访问 · 野指针
内存调试
11
GDB调试实战
断点 · 变量查看 · 堆栈回溯 · 条件断点 · 多线程
GDB调试
12
段错误排查
SIGSEGV分析 · core dump · backtrace · 信号处理
段错误崩溃
13
编译时间优化
增量编译 · 预编译头 · ccache · 并行编译 · 分布式
速度缓存
14
代码覆盖率
gcov · lcov报告 · 覆盖率分析 · 测试优化 · 门禁
覆盖率测试
15
静态分析
cppcheck · Clang Static Analyzer · 规范检查 · 工具对比
静态分析质量
16
ABI兼容性
C++ ABI · 名称修饰 · extern "C" · 编译器版本 · POD
ABI兼容
17
跨平台编译
Win/Linux/macOS差异 · 条件编译 · 平台宏 · MinGW
跨平台移植
18
构建系统进阶
Ninja · Bazel · Meson · 系统对比 · 大型项目策略
构建系统效率
19
依赖管理
vcpkg · Conan · 包管理对比 · 版本锁定 · 私有仓库
依赖包管理
20
持续集成编译
Jenkins · GitHub Actions · 编译矩阵 · 缓存 · 通知
CI自动化
21
编译性能分析
耗时分析 · 火焰图 · 瓶颈定位 · 增量策略 · 缓存优化
性能分析
22
模板编译问题
模板实例化 · 错误解读 · 显式实例化 · 分离编译 · 动态库
模板泛型
23
内联函数陷阱
inline关键字 · 内联与优化 · 代码膨胀 · 强制内联 · 调试
内联优化
24
异常处理编译
异常开销 · 异常安全 · noexcept · 异常与优化 · 动态库
异常安全
25
RTTI与类型信息
typeid · dynamic_cast开销 · RTTI关闭 · 类型信息与动态库
RTTI类型
26
编译期计算
constexpr · 模板元编程 · SFINAE · enable_if · 编译期断言
编译期元编程
27
模块化编译
C++20模块 · 模块与头文件 · 编译加速 · 现有代码集成 · 导出
模块C++20
28
编译安全
安全检查 · 缓冲区溢出检测 · 控制流完整性 · 地址随机化 · 安全选项
安全防护
29
大型项目编译
增量编译策略 · 依赖管理 · 编译集群 · 缓存共享 · 监控
大型项目扩展
30
编译问题综合实战
真实项目分析 · 定位方法论 · 问题分类 · 解决方案模板 · 经验总结
综合实战