在 CentOS 上配置 C++ 开发环境,有几个比较容易踩坑的地方。下面按安装、编译、运行、常见坑给你梳理一下。
CentOS 默认可能没有 g++:
sudo yum install gcc gcc-c++ make -y
验证:
g++ --version
gcc --version
⚠️ CentOS 7 默认是 gcc 4.8.5,对 C++11/14 支持不完整
⚠️ CentOS 8 已 EOL,建议用 Stream 或迁移到 Rocky/Alma
解决方案(推荐):
sudo yum install centos-release-scl -y
sudo yum install devtoolset-11 -y
scl enable devtoolset-11 bash
或使用:
⚠️ 注意:scl enable 只在当前 shell 生效
g++ main.cpp -std=c++17 -o main
否则可能默认 C++98。
pthreadg++ main.cpp -pthread
g++ main.cpp -lm
g++ main.cpp `pkg-config --cflags --libs opencv4`
运行时报:
error while loading shared libraries
解决:
export LD_LIBRARY_PATH=/your/lib/path:$LD_LIBRARY_PATH
或:
sudo ldconfig
cmake_minimum_required(VERSION 3.10)
project(demo)
set(CMAKE_CXX_STANDARD 17)
add_executable(demo main.cpp)
生成:
mkdir build && cd build
cmake ..
make
✅ CentOS 7 别用系统 gcc 写现代 C++
✅ devtoolset 只在 shell 内生效
✅ 运行时库路径要配好
✅ 多线程一定要加 -pthread
✅ yum 源可能失效(CentOS 8)
| 系统 | 编译器 |
|---|---|
| CentOS 7 | devtoolset-11 |
| CentOS Stream 9 | gcc 11+ |
| 新项目 | Rocky Linux / AlmaLinux |
如果你愿意,可以告诉我:
cat /etc/redhat-release)我可以直接给你一套可复制的配置方案。