在 CentOS 上安装 C++ 依赖(编译环境、第三方库等)时,有几个常见“坑”和注意点,按场景给你总结一下:
CentOS 不同版本差异很大:
cat /etc/centos-release
sudo yum groupinstall "Development Tools"
或
sudo yum install gcc gcc-c++
⚠️ CentOS 7 默认 gcc 很旧,建议升级
sudo yum install centos-release-scl
sudo yum install devtoolset-11
scl enable devtoolset-11 bash
验证:
gcc --version
⚠️ 注意:
scl enable 只在当前 shell 生效sudo yum install boost-devel openssl-devel zlib-devel
✅ 适合:
❌ 缺点:
./configure
make -j$(nproc)
sudo make install
⚠️ 注意:
/usr/localexport LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
或写:
/etc/ld.so.conf.d/xxx.conf
sudo ldconfig
sudo yum install cmake3
CentOS 7:
cmake3 ..
sudo yum install boost boost-devel
版本旧,需要新版本就源码装
CentOS 7 默认 1.0.2,很多库要求 1.1+
⚠️ 不要直接覆盖系统 OpenSSL,容易崩 yum
❌ 绝对不要手动升级 glibc 会导致系统无法启动
-lxxx
ldd your_binary
如果是新项目:
避免系统级依赖冲突
✅ 确认 CentOS 版本
✅ 安装 Development Tools
✅ CentOS 7 用 devtoolset
✅ 优先 yum,其次源码
✅ 注意库路径和 ldconfig
✅ 不要动 glibc
如果你有具体依赖(比如 OpenCV、Boost、Protobuf、abseil),可以告诉我,我给你精确的 CentOS 安装方案。