在 Debian 上感觉 gcc 编译特别慢,通常不是 gcc 本身的问题,而是环境、配置或系统状态导致的。下面按最常见 → 较少见的顺序说明原因和解决办法。
-O2 / -O3 且代码很复杂gcc 的优化级别越高,编译越慢:
-O0 # 最快
-O1
-O2
-O3 # 很慢
-Os
✅ 调试阶段用:
gcc -O0 -g
-Wall -Wextra + 大量模板 / 头文件(C++ 尤其明显)C++ 模板、STL、Boost 会极大拖慢 gcc。
✅ 可尝试:
#includeccacheccache重复编译非常慢。
✅ 安装并启用:
sudo apt install ccache
export CC="ccache gcc"
export CXX="ccache g++"
效果:第二次编译可能快 5–10 倍
gcc 本身只用一个 CPU 核心。
✅ 使用 make -j:
make -j$(nproc)
某些 Debian 测试/不稳定版 gcc 是带调试符号的。
检查:
gcc -v
如果你看到:
--enable-checking=yes
说明是调试版 gcc,会非常慢。
✅ 解决:
sudo apt install gcc
或换用 gcc-12 / gcc-13 稳定版
gcc 会产生大量临时文件。
✅ 优化:
export TMPDIR=/dev/shm
或把项目放到 SSD / tmpfs
编译时会大量吃内存。
检查:
free -h
✅ 解决:
-j 数量Debian 默认 AppArmor 一般不影响 gcc,但某些定制系统会。
老 gcc(如 gcc-8)在某些 C++17/20 代码上慢得多。
✅ 升级:
sudo apt install gcc-13 g++-13
你可以先试试:
time gcc -O0 -c test.c
如果仍然慢,检查:
nproc
free -h
gcc -v | grep enable-checking
你可以告诉我:
cat /etc/os-release)gcc --version)我可以直接帮你定位具体哪一步慢。