在安装C++库前,需确保系统软件包为最新版本,并安装必要的编译工具(如gcc-c++、make)。
sudo yum update -y # CentOS 7及以下
sudo dnf update -y # CentOS 8及以上
gcc-c++、make、gdb等):sudo yum groupinstall 'Development Tools' -y # CentOS 7及以下
sudo dnf groupinstall 'Development Tools' -y # CentOS 8及以上
CentOS默认自带GCC编译器及C++标准库(如libstdc++),无需额外安装。若需更新标准库,可通过以下命令升级gcc-c++:
sudo yum install gcc-c++ -y # CentOS 7及以下
sudo dnf install gcc-c++ -y # CentOS 8及以上
CentOS官方仓库提供了多数常用C++库的预编译包(以-devel结尾),安装后可直接链接使用:
sudo yum install boost-devel -y # CentOS 7及以下
sudo dnf install boost-devel -y # CentOS 8及以上
sudo yum install openssl-devel -y # CentOS 7及以下
sudo dnf install openssl-devel -y # CentOS 8及以上
sudo yum install qt5-qtbase-devel -y # CentOS 7及以下
sudo dnf install qt5-qtbase-devel -y # CentOS 8及以上
sudo yum install opencv-devel -y # CentOS 7及以下
sudo dnf install opencv-devel -y # CentOS 8及以上
若库未在官方仓库中,需下载源码编译安装(以Eigen纯头文件库为例):
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz
tar -xzvf eigen-3.4.0.tar.gz
sudo mv eigen-3.4.0 /usr/local/include/eigen3
eigen_test.cpp),编译时无需额外链接(纯头文件库):#include <iostream>
#include <Eigen/Dense>
int main() {
Eigen::MatrixXd m(2, 2);
m << 1, 2, 3, 4;
std::cout << m << std::endl;
return 0;
}
编译并运行:g++ eigen_test.cpp -o eigen_test && ./eigen_test
若库安装在非标准路径(如/usr/local/custom_lib),需配置环境变量让编译器找到头文件和库文件:
export LD_LIBRARY_PATH=/usr/local/custom_lib/lib:$LD_LIBRARY_PATH # 库文件路径
export CPLUS_INCLUDE_PATH=/usr/local/custom_lib/include:$CPLUS_INCLUDE_PATH # 头文件路径
~/.bashrc或/etc/profile,执行source ~/.bashrc使更改生效。使用g++编译时,需通过-I(头文件路径)、-L(库文件路径)、-l(库名称)指定库信息:
g++ -o my_program my_program.cpp -I/usr/include/boost -L/usr/lib64 -lboost_system
CMakeLists.txt中添加库配置:cmake_minimum_required(VERSION 3.10)
project(MyProject)
set(CMAKE_CXX_STANDARD 11)
# 查找Boost库
find_package(Boost REQUIRED COMPONENTS system)
include_directories(${Boost_INCLUDE_DIRS})
# 添加可执行文件
add_executable(my_program my_program.cpp)
target_link_libraries(my_program ${Boost_LIBRARIES})
编译流程:mkdir build && cd build
cmake .. # 生成Makefile
make # 编译项目
通过编写简单程序调用库功能,验证是否安装成功。例如,验证Boost库:
#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>
int main() {
using namespace boost::lambda;
typedef std::istream_iterator<int> in;
std::for_each(in(std::cin), in(), std::cout << (_1 * 3) << " ");
return 0;
}
编译并运行:
g++ -o test_boost test_boost.cpp -lboost_system -lboost_thread
echo -e "1\n2\n3" | ./test_boost # 输入1、2、3,输出3、6、9
通过以上步骤,可在CentOS系统中完成C++库文件的安装与配置,满足项目开发需求。