在 Debian 上用 gcc 编译“感觉很慢”,通常不是 gcc 本身的问题,而是环境、配置和使用方式共同导致的。下面按常见原因系统地解释一下,并给出对应解决办法。
-g 会生成大量调试信息✅ 建议:
make -j$(nproc)
只编译改动文件,而不是 make clean && make
gcc 默认是单线程编译
✅ 开启多核:
make -j$(nproc)
或
gcc -c a.c & gcc -c b.c &
Debian 上很多新手直接用:
gcc main.c
大型项目会非常慢。
C/C++ 编译慢,70% 时间在预处理
常见情况:
<iostream>、Boost、STL 全量展开.cpp 都重复解析头文件✅ 解决:
#includeDebian 的 gcc 通常:
✅ 可手动优化:
gcc -O2 -DNDEBUG
关闭调试:
strip a.out
如果你在:
编译会明显变慢。
✅ 建议:
/tmp 或本地盘Debian + ClamAV / AppArmor 有时会扫描 .o 文件
✅ 检查:
systemctl status clamav-freshclam
-O3 比 -O2 慢很多✅ 开发阶段:
-O0 或 -O1
发布阶段再用 -O2
std::vector<std::map<...>>constexpr会导致:
time make
htop
iostat -x 1
Debian 上 gcc 编译慢,90% 不是 gcc 慢,而是:单线程、头文件多、磁盘慢、没开 -j。
如果你愿意,可以告诉我:
我可以给你针对性的加速方案。