在 CentOS 上编译 C++ 失败 的原因非常多,下面给你一个最常见原因清单 + 对应解决办法,你可以对照一下自己的情况。
g++: command not found
或
cc1plus: command not found
CentOS 默认 不安装 g++
sudo yum install -y gcc gcc-c++
验证:
g++ --version
gcc main.cpp
报错类似:
undefined reference to `std::cout`
gcc 默认按 C 编译 C++ 文件
g++ main.cpp -o main
fatal error: iostream: No such file or directory
gcc-c++sudo yum install -y gcc-c++
g++ -std=c++17 main.cpp
报错:
error: ‘filesystem’ is not a namespace-name
g++ -std=c++11 main.cpp
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-9
scl enable devtoolset-9 bash
undefined reference to `pthread_create`
g++ main.cpp -lpthread
其他常见:
-lm # 数学库
-lstdc++ # 极端情况下
常见问题:
gcc 编译 .cpp✅ 正确示例:
CXX = g++
CXXFLAGS = -std=c++11
main: main.cpp
$(CXX) $(CXXFLAGS) main.cpp -o main
bash: ./a.out: Permission denied
解决:
chmod +x a.out
⚠️ CentOS 6 已停止维护
建议:
g++ --version
yum list installed | grep gcc-c++
如果你愿意,可以:
我可以直接帮你精确定位问题。