“Ubuntu 下 gcc 卡住”通常不是 gcc 本身的问题,而是环境、资源或编译目标导致的。下面按最常见原因 → 排查方法给你一个清单,你可以逐条对照。
现象
dmesg 里可能有 Out of memory排查
free -h
swapon --show
top
解决
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
make -j1
现象
排查
ps aux | grep gcc
解决
-O0 -g
现象
D(不可中断睡眠)排查
iostat -x 1
dmesg | tail
解决
/tmp现象
gcc -E 也卡解决
gcc -E main.c | head
检查宏是否递归展开。
现象
checking...解决
strace -f gcc ...
看卡在哪个系统调用。
建议
# 看 gcc 在干嘛
strace -f gcc test.c
# 看资源
top
htop
iotop
# 看是不是 OOM
dmesg | grep -i kill
你可以补充:
lsb_release -a)gcc --version)我可以直接给你针对性解决方案。