在 CentOS 上配置 C++ 环境“总失败”,通常不是单一原因,而是下面几类问题里的一个或几个叠加。我按最常见 → 较少见给你梳理,并给出排查方法,你可以对照看是卡在哪一步。
很多人以为 gcc 装了就完了,其实:
gcc:C 编译器g++:C++ 编译器(必须单独装)✅ 检查:
g++ --version
❌ 如果提示 command not found
✅ 安装:
sudo yum install gcc-c++
CentOS 6 已 EOL,CentOS 7 也快了,很多默认源访问不了。
✅ 检查:
sudo yum makecache
❌ 报错 404 / timeout
✅ 解决:
sudo sed -i 's/mirrorlist/#mirrorlist/' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|' /etc/yum.repos.d/CentOS-*
比如你用了:
pthreadmath.h但没装 -devel 包
✅ 例子:
sudo yum install glibc-devel
编译时如果报错:
undefined reference to `pthread_create`
✅ 加:
g++ main.cpp -lpthread
❌ 错误:
gcc main.cpp
✅ 正确:
g++ main.cpp
CentOS 默认可能是 C++98
✅ 明确指定:
g++ -std=c++11 main.cpp
CentOS 自带 CMake 很老(2.x / 3.几)
✅ 检查:
cmake --version
✅ 升级(推荐):
sudo yum install epel-release
sudo yum install cmake3
使用:
cmake3 ..
报错类似:
The CXX compiler identification is unknown
✅ 确认:
which g++
✅ 清理缓存:
rm -rf build
mkdir build && cd build
cmake ..
sudo chown -R $USER:$USER project_dir
比如手动装了 /usr/local/gcc
✅ 查看:
which g++
g++ -v
如果你愿意,把下面任意一项贴出来,我可以直接告诉你哪一步错了:
cat /etc/redhat-release)✅ 一句话总结:
CentOS 配 C++ 失败,80% 是没装
gcc-c++或源有问题,剩下的是编译参数和库不对。
你可以说一句:“我卡在 XXX 报错”,我直接帮你改。