在 CentOS 上配置 C++ 依赖,常见方式取决于你是系统级依赖还是项目级依赖。下面按使用场景给你一个比较完整的总结。
sudo yum groupinstall "Development Tools"
# 或
sudo yum install gcc gcc-c++ make cmake
查看版本:
g++ --version
例如:
sudo yum install openssl-devel
sudo yum install boost-devel
sudo yum install zlib-devel
常见 C++ 库包名规则:
-devel:开发头文件yum search xxx
yum list available | grep xxx
cmake_minimum_required(VERSION 3.10)
project(demo)
find_package(Boost REQUIRED)
find_package(OpenSSL REQUIRED)
add_executable(demo main.cpp)
target_link_libraries(demo Boost::boost OpenSSL::SSL)
编译:
mkdir build && cd build
cmake ..
make
例如安装 fmt:
git clone https://github.com/fmtlib/fmt.git
cd fmt
mkdir build && cd build
cmake ..
make -j
sudo make install
默认安装路径:
/usr/local/include/usr/local/lib如果 CMake 找不到:
export CMAKE_PREFIX_PATH=/usr/local
适合现代 C++ 项目:
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
安装库:
./vcpkg install fmt
CMake 中使用:
cmake -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake ..
pip install conan
conanfile.txt:
[requires]
boost/1.82.0
[generators]
cmake
使用:
conan install . --build=missing
sudo ldconfig
或:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
可安装 devtoolset:
sudo yum install centos-release-scl
sudo yum install devtoolset-11
scl enable devtoolset-11 bash
老系统编译的程序在新系统可能不兼容,反之亦然。
如果你能告诉我:
我可以给你更精确的配置命令。