温馨提示×

CentOS C++如何关联依赖

小樊
45
2026-08-30 02:31:55
栏目: 编程语言

CentOS 上做 C++ 依赖管理/关联依赖,常见场景有几种,我按从简单到规范的方式给你讲一遍,你可以对号入座。


一、最基础:编译时链接库(手动)

1️⃣ 安装开发工具

sudo yum groupinstall "Development Tools"
sudo yum install gcc gcc-c++ make

2️⃣ 安装依赖库(示例:OpenSSL)

sudo yum install openssl-devel

注意:

  • 运行时库:openssl
  • 开发库(头文件 + .so):openssl-devel

3️⃣ 编译时链接

g++ main.cpp -o app -lssl -lcrypto

✅ 这是最原始、最常见的方式。


二、用 pkg-config 自动关联依赖(推荐)

很多库支持 pkg-config

安装

sudo yum install pkg-config

示例:libcurl

sudo yum install libcurl-devel
g++ main.cpp -o app $(pkg-config --cflags --libs libcurl)

✅ 自动处理:

  • 头文件路径 -I
  • 库路径 -L
  • 链接库 -l

三、使用 CMake(工程级,推荐 ✅)

安装 CMake

sudo yum install cmake

示例:依赖 OpenSSL

cmake_minimum_required(VERSION 3.10)
project(demo)

find_package(OpenSSL REQUIRED)

add_executable(demo main.cpp)
target_link_libraries(demo OpenSSL::SSL OpenSSL::Crypto)

编译

mkdir build
cd build
cmake ..
make

✅ CMake 会自动:

  • 查找依赖
  • 处理头文件
  • 处理链接关系

四、使用系统 RPM 管理依赖(CentOS 特色)

查看某个库由哪个包提供

yum provides libssl.so

查看已安装库的依赖

ldd ./app

打包 RPM 时声明依赖

BuildRequires: openssl-devel
Requires: openssl

✅ 适合做 系统级软件/RPM 包


五、第三方依赖管理(现代 C++)

1️⃣ vcpkg(跨平台)

git clone https://github.com/microsoft/vcpkg
./bootstrap-vcpkg.sh
./vcpkg install openssl

CMake 中:

set(CMAKE_TOOLCHAIN_FILE /path/vcpkg/scripts/buildsystems/vcpkg.cmake)
find_package(OpenSSL REQUIRED)

2️⃣ Conan(专业 C++ 包管理)

pip install conan
conan install . --build=missing

✅ 适合大型 C++ 项目


六、常见坑 & 排查

❌ 编译时报 cannot find -lxxx

sudo yum install xxx-devel

❌ 运行时报 error while loading shared libraries

ldd app
echo $LD_LIBRARY_PATH

或:

sudo ldconfig

七、总结(怎么选)

场景 推荐方式
简单 demo g++ -lxxx
库依赖较多 pkg-config
工程项目 CMake
系统软件 RPM + yum
现代 C++ vcpkg / Conan

如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 用不用 CMake
  • ✅ 具体依赖(如 OpenSSL / Boost / protobuf / fmt)

我可以直接给你可用的完整示例

0