在 Ubuntu 上用 gcc 编译/运行慢,通常不是“gcc 本身慢”,而是环境或用法导致的。下面按常见原因 → 排查方法 → 解决建议来说明。
Ubuntu 上常见:
每次 gcc 生成可执行文件都会被扫描,非常慢。
✅ 排查:
systemctl status clamav-freshclam
ps aux | grep clam
✅ 解决:
常见于:
✅ 测试:
time gcc test.c -o test
再换到 /tmp:
cp test.c /tmp
cd /tmp
time gcc test.c -o test
✅ 解决:
/mnt/c 编译-O2 / -O3 且代码很大优化级别越高,gcc 越慢。
✅ 对比:
time gcc -O0 test.c -o test
time gcc -O2 test.c -o test
✅ 建议:
-O0 -g-O2#include✅ 查看预处理大小:
g++ -E main.cpp | wc -l
✅ 解决:
gcc 很吃内存。
✅ 检查:
free -h
top
编译时看是否 swap。
✅ 解决:
make -j2make -j 开太多线程。
✅ 建议:
make -j$(nproc)
或略少一点。
某些旧 gcc 在 Ubuntu 上很慢。
✅ 查看:
gcc --version
✅ 可升级:
sudo apt install gcc-12
# 1. 是否在慢盘
df -h .
# 2. 是否在 WSL
uname -a
# 3. 是否有安全软件
ps aux | grep -E "clam|scan"
# 4. 编译时间对比
time gcc -O0 a.c -o a
time gcc -O2 a.c -o a
你可以告诉我:
我可以直接帮你定位到具体原因。