在 CentOS 上感觉 gcc 编译很慢,通常不是 gcc 本身的问题,而是环境、配置或使用方式导致的。下面从常见原因到优化建议系统说明。
✅ 对比:
CentOS 7: gcc 4.8.5 (慢)
CentOS 8: gcc 8/9/10 (快很多)
-O0(默认):编译快,但生成代码慢-O2:平衡-O3:编译明显变慢-g:加调试信息,也会拖慢⚠️ 很多人误以为 -O0 最快,其实:
-O2 反而更合理#include <bits/stdc++.h>.cpp 都重头解析头文件表现:
✅ 解决:
很多人直接:
gcc main.c
完全没并行。
✅ 正确方式:
make -j$(nproc)
或
ninja
/tmp 在慢盘上gcc 会大量读写:
.o 文件✅ 建议:
export TMPDIR=/dev/shm
(内存盘,极快)
在某些 CentOS 上:
✅ 可临时测试:
setenforce 0
会扫描每个 .o 和二进制文件,严重拖慢。
表现:
✅ 查看:
free -h
# CentOS 7
yum install centos-release-scl
yum install devtoolset-9-gcc devtoolset-9-gcc-c++
scl enable devtoolset-9 bash
或升级到 gcc 11/12:
yum install devtoolset-11
ccache(强烈推荐)避免重复编译:
yum install ccache
export CC="ccache gcc"
export CXX="ccache g++"
大型项目效果非常明显。
你可以依次检查:
gcc --version
nproc
free -h
df -h /tmp
ps aux | grep gcc
CentOS 上 gcc 慢,90% 是因为:老 gcc + 单线程 + 头文件爆炸 + 磁盘慢
如果你愿意,可以告诉我:
我可以直接给你针对性的加速方案。