在 CentOS 上编译 C++ 慢,通常可以从硬件资源、编译参数、构建系统、环境配置几个层面来优化。下面按“见效快慢 + 实用性”给你一套方案。
这是最常用、效果最明显的手段。
make -j$(nproc)
或 CMake:
cmake --build . -j$(nproc)
查看 CPU 核数:
nproc
一般
-j 核数或核数 + 1最快
ccache(强烈推荐)避免重复编译,第二次编译非常快。
yum install -y ccache
使用方式(CMake 示例):
export CC="ccache gcc"
export CXX="ccache g++"
或 CMake:
cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache .
查看命中率:
ccache -s
仅开发/调试阶段使用
-O0 -g
发布时再:
-O2 或 -O3
CMake 示例:
cmake -DCMAKE_BUILD_TYPE=Debug .
C++ 编译慢,90% 是头文件引起的。
✅ 做法:
#include<iostream> 代替 <bits/stdc++.h>(CentOS 上尤其慢)大型项目非常有效。
CMake 示例:
target_precompile_headers(myapp PRIVATE stdafx.h)
yum install -y ninja-build
cmake -G Ninja .
ninja
通常比 make 快 20%~50%
CentOS 自带 gcc 很老(4.8 / 7),非常慢。
yum install -y centos-release-scl
yum install -y devtoolset-11
scl enable devtoolset-11 bash
支持:
适合小项目:
mkdir /tmp/build
mount -t tmpfs tmpfs /tmp/build
把 build 目录放进去。
setenforce 0
top
-j✅ CentOS 编译 C++ 最快组合:
-j$(nproc)如果你愿意,可以告诉我:
我可以给你针对性的优化方案。