温馨提示×

linux c++配置为什么慢

小樊
38
2026-10-02 02:58:38
栏目: 编程语言

在 Linux 下进行 C++ 开发时,**“配置慢”**通常指以下两类场景之一:

  1. 项目构建/编译慢(configure / cmake / make 慢)
  2. 开发环境配置慢(装工具链、依赖、IDE 等慢)

下面分别说明常见原因和优化建议。


一、构建系统配置慢(configure / cmake)

1. autotools(./configure)慢

原因

  • 大量 AC_TRY_RUN / AC_TRY_COMPILE
  • 多次调用编译器探测系统特性
  • 依赖库很多(如 Boost、OpenSSL)

优化

./configure --help
./configure --disable-dependency-tracking
./configure --enable-fast-install
  • 关闭不必要的模块
  • 使用 ccache
  • 预先安装 -dev 依赖

2. CMake 配置慢

原因

  • find_package() 搜索路径多
  • 大量 try_compile
  • 使用 FetchContent 下载源码

优化

cmake -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
      -DFETCHCONTENT_FULLY_DISCONNECTED=ON
  • 使用 ccache
  • 避免每次重新下载依赖
  • 使用 presets

二、编译本身慢(最常见)

1. 没有使用并行编译

make -j$(nproc)

或 CMake:

cmake --build . -j$(nproc)

2. 模板 / 头文件过多

  • 大量 <iostream>、Boost、Eigen
  • 头文件依赖爆炸

优化

  • 使用 PCH(预编译头)
  • 减少 #include
  • 使用 modules(C++20)

3. 没有 ccache

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

三、磁盘 / 文件系统问题

1. 在慢磁盘或虚拟机上

  • HDD
  • 网络文件系统(NFS)

建议

  • 使用 SSD
  • 构建目录放在本地磁盘

2. 杀毒 / 安全软件扫描

  • 某些 Linux 安全模块会扫描编译产物

四、依赖管理慢

1. 使用 apt / yum 慢

# 换国内镜像
sudo apt update

2. 使用 vcpkg / conan 慢

  • 首次下载依赖很慢
  • 网络问题

五、IDE / 编辑器配置慢

  • CLion 索引慢(大项目)
  • VSCode + C++ 插件解析慢

优化

  • 限制 include 路径
  • 使用 compile_commands.json
  • 关闭不必要的插件

六、典型“慢”的真实原因总结

原因 占比
没开 -j ⭐⭐⭐⭐
没用 ccache ⭐⭐⭐⭐
模板/头文件过多 ⭐⭐⭐
磁盘慢 ⭐⭐⭐
网络依赖 ⭐⭐

如果你愿意

你可以告诉我:

  • 用的是 make / cmake / bazel / meson?
  • 是 配置阶段慢 还是 编译阶段慢
  • 项目规模(文件数 / 依赖)

我可以给你针对性的优化方案。

0 踩