在 CentOS 上解决 C++ 依赖问题,通常可以从系统包管理器、开发工具链、第三方库、构建系统几个层面入手。下面按常见场景给你一个系统性的解决思路。
sudo yum groupinstall "Development Tools"
# 或 CentOS 8+
sudo dnf groupinstall "Development Tools"
gcc --version
g++ --version
如果没有:
sudo yum install gcc gcc-c++
sudo yum install glibc-devel libstdc++-devel
例如缺少 libssl:
sudo yum provides */libssl.so
C++ 依赖通常是 运行时包 + devel 包:
sudo yum install openssl-devel
sudo yum install zlib-devel
sudo yum install boost-devel
✅ 规则:
编译用 -devel,运行用普通包
默认 GCC 4.8,很多现代 C++ 不支持。
sudo yum install centos-release-scl
sudo yum install devtoolset-9
scl enable devtoolset-9 bash
可选版本:
pkg-config --cflags --libs openssl
CMake 中:
find_package(OpenSSL REQUIRED)
target_link_libraries(app OpenSSL::SSL)
g++ main.cpp -I/usr/local/include -L/usr/local/lib -lfoo
error while loading shared libraries: libxxx.so.1
sudo ldconfig
或:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
./vcpkg install fmt
conan install . --build=missing
| 问题 | 解决 |
|---|---|
| 找不到 c++ | 安装 gcc-c++ |
| 头文件缺失 | 安装 *-devel |
| 链接失败 | 检查 -l 和 -L |
| 运行时找不到 so | ldconfig |
| CentOS 7 太老 | devtoolset |
你可以补充:
我可以直接帮你定位并给出可复制命令。