在 CentOS 上检查 C++ 编译与运行环境配置,通常可以从以下几个方面逐步排查。下面按「最常见 → 进阶」的顺序给出方法和命令。
g++ --version
✅ 正常输出示例:
g++ (GCC) 8.5.0
❌ 如果提示:
-bash: g++: command not found
说明 未安装 C++ 编译器
sudo yum install -y gcc gcc-c++
CentOS 8 / Stream 也可以用:
sudo dnf install -y gcc gcc-c++
ldd --version
示例:
ldd (GNU libc) 2.17
⚠️ 注意:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
常见输出:
GLIBCXX_3.4
GLIBCXX_3.4.19
GLIBCXX_3.4.21
✅ 如果缺少 GLIBCXX_3.4.21+,说明:
ls /usr/include/c++/
✅ 有类似:
4.8.2 8 11
❌ 如果没有,说明开发包不完整
rpm -qa | grep -E "gcc|glibc|libstdc++"
// test.cpp
#include <iostream>
int main() {
std::cout << "Hello CentOS C++" << std::endl;
return 0;
}
g++ test.cpp -o test
./test
✅ 成功输出:
Hello CentOS C++
make --version
cmake --version
安装:
sudo yum install -y make cmake
uname -m
x86_64 ✅i686 ⚠️(32 位,已过时)| 问题 | 原因 | 解决 |
|---|---|---|
| g++ 不存在 | 未安装 | yum install gcc-c++ |
| GLIBCXX 缺失 | libstdc++ 太旧 | 升级 GCC |
| 编译通过但运行报错 | glibc / libstdc++ 不匹配 | 使用相同环境编译 |
| CentOS 7 编译 C++17 | GCC 版本低 | 安装 devtoolset |
推荐:
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-11
scl enable devtoolset-11 bash
如果你愿意,可以告诉我:
我可以给你 精确到命令级别 的解决方案。