温馨提示×

linux c++配置怎样提速

小樊
48
2026-09-29 05:41:34
栏目: 编程语言

在 Linux 下进行 C++ 开发/构建提速,可以从编译、链接、构建系统、依赖管理、机器资源、编辑器等多个层面入手。下面按“见效快慢 + 实用程度”给你一套可落地的方案。


一、编译器层面(最直接)

1. 使用更快的编译器

  • Clang 通常比 GCC 快
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
  • 或使用 Clang + lld(链接更快)
-fuse-ld=lld

2. 开启合适优化等级

  • 开发阶段用:
-O0 -g
  • 发布用:
-O2 或 -O3

⚠️ -O0 编译快,但运行慢;调试时优先编译速度。

3. 减少模板 / 头文件膨胀

  • 避免 include 巨型头文件
  • 使用 前向声明
  • 使用 Pimpl 模式
  • 模板代码放到 .cpp 中(C++20 Modules 更好)

二、并行编译(必做)

4. 使用多核编译

make -j$(nproc)
ninja

5. 使用 Ninja(比 Make 快很多)

cmake -GNinja
ninja

✅ Ninja 启动快、依赖解析快


三、构建系统优化

6. CMake 优化建议

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
  • 关闭不必要选项:
set(BUILD_TESTING OFF)
  • 使用 target_* 而非全局 include_directories

7. 分离 Debug / Release 目录

build/debug
build/release

避免重复配置


四、预编译头(PCH)

8. 使用 Precompiled Headers

适合 STL / Boost / 项目公共头

target_precompile_headers(app PRIVATE common.h)

五、分布式 / 缓存编译(大项目必看)

9. ccache(强烈推荐)

sudo apt install ccache
export CC="ccache gcc"
export CXX="ccache g++"

✅ 第二次编译几乎秒回

10. distcc / icecc(多机器)

  • 多台机器一起编译
  • 适合 CI / 大型项目

六、链接阶段提速

11. 使用更快的链接器

  • lld(Clang)
  • gold(GCC)
-fuse-ld=lld

12. 减少符号导出

-fvisibility=hidden

七、依赖与模块优化

13. 减少外部依赖

  • Boost → 标准库
  • 大库 → 按需编译

14. C++20 Modules(未来方向)

  • 编译速度提升明显
  • 当前支持:Clang > GCC

八、开发环境提速

15. 编辑器 / IDE

  • CLion + Ninja + ccache
  • VSCode + clangd
sudo apt install clangd

16. 使用 tmpfs(内存编译)

mkdir /tmp/build
mount -t tmpfs tmpfs /tmp/build

✅ 极小项目效果明显


九、典型组合推荐(实战)

中小型项目

Clang + Ninja + ccache

大型项目

GCC/Clang + Ninja + ccache + lld + PCH

CI / 服务器

distcc + ccache + Ninja

十、快速自检清单 ✅

  • [ ] 是否用了 -j
  • [ ] 是否用了 Ninja
  • [ ] 是否用了 ccache
  • [ ] 是否用了 PCH
  • [ ] 是否头文件过多
  • [ ] 是否用了 lld

如果你愿意,可以告诉我:

  • 项目规模(文件数 / 代码量)
  • 当前用的(GCC/Clang + Make/CMake)
  • 是本地开发还是 CI

我可以直接帮你给一套具体配置模板。

0 踩