在 CentOS 上感觉 gcc 编译很慢,通常不是 gcc 本身“差”,而是环境、配置或使用方式导致的。下面按常见原因 → 表现 → 解决办法说明。
CentOS 7 默认:
✅ 表现:
✅ 解决:
# CentOS 7
yum install centos-release-scl
yum install devtoolset-11-gcc devtoolset-11-gcc-c++
scl enable devtoolset-11 bash
CentOS 8 / Stream:
dnf install gcc-toolset-12
很多人直接:
make
✅ 实际只用了 1 个核心
✅ 正确方式:
make -j$(nproc)
✅ 检查:
nproc
例如:
-O3 -march=native
在:
会明显变慢(尤其 -O3 + LTO)
✅ 建议:
-O0 -g-O2-flto
✅ 特点:
✅ 适用:
尤其是:
✅ 表现:
cc1plus 占 CPU 不高✅ 解决:
/tmp 或本地盘gcc(尤其 C++)非常吃内存
✅ 检查:
free -h
top
✅ 解决:
-j 数量在 CentOS 上很常见
✅ 检查:
getenforce
✅ 临时测试:
setenforce 0
<bits/stdc++.h>✅ 解决:
ccache重复编译极慢
✅ 安装:
yum install ccache
✅ 使用:
export CC="ccache gcc"
export CXX="ccache g++"
gcc --version
nproc
free -h
make -j$(nproc)
CentOS 上 gcc 慢,90% 是因为:老 gcc + 没开 -j + IO/内存瓶颈
如果你愿意,可以告诉我:
我可以给你针对性的加速方案。