在 CentOS 上解决 C++ 依赖问题,通常分几种常见场景。下面按「最常见 → 进阶」给你一个完整思路。
如果你只是想 编译 C++ 程序,一般只需要:
sudo yum groupinstall "Development Tools"
或(CentOS 8+ / Rocky / Alma):
sudo dnf groupinstall "Development Tools"
包含:
gccgcc-c++makebinutilsautoconf / automake检查:
g++ --version
iostream、vector)sudo yum install gcc-c++
或:
sudo yum install libstdc++-devel
| 依赖 | 安装命令 |
|---|---|
| OpenSSL | sudo yum install openssl-devel |
| zlib | sudo yum install zlib-devel |
| curl | sudo yum install libcurl-devel |
| boost | sudo yum install boost-devel |
| pthread | 通常自带(glibc) |
| readline | sudo yum install readline-devel |
✅ 规律:
缺什么,就装
xxx-devel
Could NOT find OpenSSL
sudo yum install openssl-devel
如果还是找不到:
rpm -ql openssl-devel
确认 .h 和 .so 是否存在。
g++ main.cpp -o main -lpthread -lssl -lcrypto
或 CMake:
find_package(OpenSSL REQUIRED)
target_link_libraries(app OpenSSL::SSL OpenSSL::Crypto)
sudo yum install ...
sudo dnf install ...
建议:
CentOS 7 默认 GCC 很老(4.8)
sudo yum install centos-release-scl
sudo yum install devtoolset-11
scl enable devtoolset-11 bash
永久生效:
echo "source /opt/rh/devtoolset-11/enable" >> ~/.bashrc
./configure
make
sudo make install
git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.sh
./vcpkg/vcpkg install fmt
看到 fatal error: xxx.h
→ 装 xxx-devel
看到 undefined reference
→ 编译时 -lxxx
库存在但找不到
ldconfig -p | grep libxxx
查看文件属于哪个包
yum provides */xxx.h
你可以直接贴:
我可以 精准告诉你该装什么、怎么装 ✅