在 CentOS 上做 C++ 依赖管理/关联依赖,常见场景有几种,我按从简单到规范的方式给你讲一遍,你可以对号入座。
sudo yum groupinstall "Development Tools"
sudo yum install gcc gcc-c++ make
sudo yum install openssl-devel
注意:
- 运行时库:
openssl- 开发库(头文件 + .so):
openssl-devel
g++ main.cpp -o app -lssl -lcrypto
✅ 这是最原始、最常见的方式。
pkg-config 自动关联依赖(推荐)很多库支持 pkg-config。
sudo yum install pkg-config
sudo yum install libcurl-devel
g++ main.cpp -o app $(pkg-config --cflags --libs libcurl)
✅ 自动处理:
-I-L-lsudo yum install cmake
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 会自动:
yum provides libssl.so
ldd ./app
BuildRequires: openssl-devel
Requires: openssl
✅ 适合做 系统级软件/RPM 包
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)
pip install conan
conan install . --build=missing
✅ 适合大型 C++ 项目
cannot find -lxxxsudo yum install xxx-devel
error while loading shared librariesldd app
echo $LD_LIBRARY_PATH
或:
sudo ldconfig
| 场景 | 推荐方式 |
|---|---|
| 简单 demo | g++ -lxxx |
| 库依赖较多 | pkg-config |
| 工程项目 | CMake |
| 系统软件 | RPM + yum |
| 现代 C++ | vcpkg / Conan |
如果你愿意,可以告诉我:
我可以直接给你可用的完整示例。