在 CentOS 上遇到 GCC 编译速度慢,可以从 编译器选项、系统资源、构建方式、工具链 等多个层面优化。下面按「立竿见影 → 进阶优化 → 架构级优化」给你一套实用方案。
make -j$(nproc)
或
make -j$(($(nproc)*2))
CentOS 上
nproc通常可用,表示 CPU 核心数
避免重复编译同一份代码
yum install ccache -y
使用方式:
export CC="ccache gcc"
export CXX="ccache g++"
或直接在 CMake 中:
cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache .
✅ 二次编译通常 快几倍到十几倍
开发/调试时不要用 -O2/-O3
-O0 -g
发布时再开启:
-O2
适合大项目(C++):
-x c++-headertarget_precompile_headers(myapp PRIVATE stdafx.h)
把编译目录放到内存中:
mkdir /ramdisk
mount -t tmpfs tmpfs /ramdisk
cp -r project /ramdisk/
cd /ramdisk/project
make -j$(nproc)
✅ I/O 密集型项目提升明显
iostat 检查是否 I/O 瓶颈yum install ninja-build -y
cmake -GNinja .
ninja
✅ Ninja 比 Make 快 20%~50%
CentOS 7 默认 gcc 4.8,编译慢且差
使用 devtoolset:
yum install centos-release-scl -y
yum install devtoolset-11 -y
scl enable devtoolset-11 bash
✅ 新 GCC 编译速度更快、错误更少
yum install distcc -y
适合服务器集群
长期方案,显著减少头文件解析
nproc
free -h
iostat -x 1
gcc --version
which ccache
如果你愿意,可以告诉我:
我可以给你 针对性优化方案。