在 CentOS 上 gcc 编译失败的原因有很多,下面按常见原因 → 现象 → 解决办法给你梳理一下,你可以对照看看是哪一种。
gcc: command not found
或
bash: gcc: 未找到命令
# CentOS 7
yum install -y gcc gcc-c++
# CentOS 8 / Stream
dnf install -y gcc gcc-c++
验证:
gcc --version
fatal error: xxx.h: No such file or directory
安装对应 devel 包,例如:
yum install -y glibc-devel
yum install -y kernel-devel
yum install -y openssl-devel
undefined reference to `xxx'
cannot find -lxxx
yum install -y xxx-devel
gcc test.c -L/usr/local/lib -lxxx
error: expected ';' before 'xxx'
或 C11/C++11/C++17 特性不支持
# CentOS 7 示例
yum install -y centos-release-scl
yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++
scl enable devtoolset-9 bash
Permission denied
chmod +x configure
chmod 644 *.c
cannot execute binary file
getenforce
setenforce 0 # 临时关闭
/usr/bin/ld: skipping incompatible ...
安装 32 位支持(如需要):
yum install -y glibc.i686 libstdc++.i686
如果你愿意,可以把 完整报错信息 发出来,例如:
gcc test.c
test.c:5:10: fatal error: stdio.h: No such file or directory
我可以直接告诉你 是哪一步、哪一行、怎么改。
如果你愿意,可以告诉我:
cat /etc/redhat-release)我可以一步一步帮你排错。