在 Debian 系统上用 gcc 编译“很慢”,通常不是 GCC 本身有 bug,而是由环境、配置、源码规模、依赖或系统资源导致的。下面按常见原因从高到低说明,并给出排查和加速办法。
✅ 解决:
make -j$(nproc)
或
ninja -j$(nproc)
很多人直接:
make
只用 1 个核心。
✅ 检查 CPU 核心数:
nproc
✅ 使用多核:
make -j$(nproc)
Debian 稳定版:
-g✅ 查看 gcc 版本:
gcc --version
✅ 查看编译参数:
gcc -v
编译大项目非常吃内存。
✅ 查看:
free -h
如果 Swap 被大量使用,说明内存不够。
✅ 解决:
-j 数量ccache编译会产生大量临时文件。
✅ 检查磁盘类型:
lsblk
✅ 使用 tmpfs(小心内存):
mkdir /tmp/build
mount -t tmpfs tmpfs /tmp/build
✅ 安装:
sudo apt install ccache
✅ 使用:
export CC="ccache gcc"
export CXX="ccache g++"
✅ 查看命中率:
ccache -s
例如:
-g -O0 -Wall -Wextra
✅ 发布编译建议:
-O2 -DNDEBUG
-flto 会显著拖慢链接阶段。
✅ 如果慢在“最后一步”,很可能是 LTO。
Debian 的 gcc 实际是:
/usr/bin/gcc -> gcc-12
✅ 检查:
ls -l /usr/bin/gcc
一般不影响速度,但某些容器会慢。
✅ WSL 建议:
/mnt/cnproc
free -h
gcc --version
ccache -s
然后:
make clean
time make -j$(nproc)
你可以告诉我:
cat /etc/os-release)我可以直接给你针对性的优化方案。