centos7.9编译安装libzip-1.9.2 和 cmake 3.23.0

centos7.9编译安装libzip-1.9.2

在编译安装php时系统会报 configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != … 这是因为libzip 版本过低 解决方法如下:
1、卸载以前的版本 ,没有的话也可以不用卸载

yum remove libzip libzip-devel

2、安装cmake3

yum install -y cmake3

//如果找不到包就选择源码安装
cmake源码安装方法(最下面有安装方法)

开始安装libzip

1、去官网下载libzip 想要最新的也可以去https://libzip.org/download/ 或者github寻找

wget -c https://libzip.org/download/libzip-1.9.2.tar.gz

2、解压安装包并创建build目录

tar -zvxf libzip-1.9.2.tar.gz
//进入安装包
cd libzip-1.9.2
//创建build目录
mkdir build && cd build

注意使用cmake … 的情况是会把libzip 安装到/usr/lib64 请自行了解/usr/local/lib64 和 /usr/lib64 的区别,为了把他安装到/usr/lib64我们选择给他指定目录

//在刚刚建立的build目录中
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
// 这里如果执行失败,请直接用cmake的绝对路径执行
//编译软件
make
//安装软件
make install

//通过命令查看是否生效 二选一
方式1:查单个(推荐)  有的话会提示  -lzip
pkg-config --libs libzip
方式2:列出所有看看有没有libzip
pkg-config --list-all

这样我们就大公告成了

生效方式1:

我们需要设置 pkg_config_path 环境变量方法,先看pkg_config_path的值有没有生效,没有的话就添加接下来查看是不是没有添加path

echo $PKG_CONFIG_PATH
//发现没有返回东西,或者返回的东西没有libzip相关的信息所以我们需要添加path

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib64/pkgconfig
//执行下面代码检查下有没有成功

pkg-config --libs libzip
//得到的回复是有libzip 信息的就代表成功了
-L/usr/local/lib64 -lzip

注意:$PKG_CONFIG_PATH 系统重启或者开启新的shell终端会话会失效,具体原因请自行了解

生效方式2:(推荐)

方法2也是通过设置pkg_config_path 环境变量方法,但是是永久有效,不受重启影响,先看pkg_config_path的值有没有生效,没有的话就添加

echo $PKG_CONFIG_PATH
//发现没有返回东西,或者返回的东西没有libzip相关的信息

给~/.bashrc 的最底部 添加PKG_CONFIG_PATH配置,当然你也可以添加到别的地方无非就是用不同的配置文件 如profile等等在这里就懒得写了,~/.bashrc只是针对用户自己而言,请自行了解 profile和bashrc区别

我是在root 账户下添加的,那么只有这个账户下会生效,如果是别的账户需要使用的话请在别的账户下添加

//编辑bashrc
vi ~/.bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig
export PKG_CONFIG_PATH
//使path 生效
source ~/.bashrc
//重启或执行source ~/.bashrc 都可以使path生效

//再次进入系统我们执行下列操作检查一下有没有成功
pkg-config --libs libzip
//得到的回复是有libzip 信息的就代表成功了,重启的话也不会丢失
-L/usr/local/lib64 -lzip

centos7.9 编译安装cmake 3.23.0

1、先检查并卸载老版本

yum remove cmake

2、准备安装好cmake所需的依赖

yum -y install gcc gcc-c++ openssl openssl-devel tar

3、下载源码

官方地址: https://github.com/Kitware/CMake/releases/download/v3.23.0/cmake-3.23.0.tar.gz
git地址:https://github.com/Kitware/CMake/releases/download/v3.23.0/cmake-3.23.0.tar.gz

4.解压并进入安装包

tar -zvxf cmake-3.23.0.tar.gz
cd cmake-3.23.0

编译安装两张方式2选一

1、安装方法1

分别运行下面三段代码

./bootstrap
//编译
make
//安装
make install
//安装好后 直接运行cmake -version 看看是否成功
//which cmake 或者 find / -name cmake可以查看cmake在哪里

软链接的话看个人需要是否要建立,可以参考下面,我们不指定安装位置的话,系统会自动把cmake的执行文件放到相应位置,如果系统没有指定的话,为了方便全局使用,你可以自己建一个软链接

2、安装方法2

//指定安装目录为usr/local/cmake

./bootstrap --prefix=/usr/local/cmake --datadir=share/cmake --docdir=doc/cmake

//编译并安装

make && make install

指定 cmake 软链接这样可以在全局使用它,你可以把/usr/local/cmake/bin/cmake 指定到/usr/bin/cmake 或者 /usr/local/bin/cmake, 我们推荐使用/usr/local/bin/cmake,具体的请去百度了解一下/usr/bin 和 usr/local/bin的区别

ln -s /usr/local/cmake/bin/cmake /usr/local/bin/cmake
ln -s /usr/local/cmake/bin/cpack /usr/local/bin/cpack
ln -s /usr/local/cmake/bin/ctest /usr/local/bin/ctest

软链接完成后也就大功告成了!!!

安装php-zlib

1、去官网下载扩展

wget https://pecl.php.net/get/zip-1.21.1.tgz
tar zxvf zip-1.21.1.tgz
cd zip-1.21.1
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

2、生成的模块路径

/usr/local/php/lib/php/extensions/no-debug-non-zts-20220922/zip.so

3、修改php.ini

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20220922"
;增加
extension=zip.so

4、修改php.ini文件中output_compression

zlib.output_compression = Off 改为 zlib.output_compression = On;

5、重启apache或php-fpm

<think>好的,我现在需要解决用户在编译CMake 3.23.0时遇到的bootstrap错误,具体是找不到支持C++11的C++编译器。根据用户提供的引用信息,我需要先理解问题的根源,然后结合引用中的资料给出解决方案。 首先,用户提到错误信息是“The C++ compiler does not support C++11 (e.g. std::unique_ptr)”。引用[1]指出这可能是因为编译器版本过低或者没有正确配置。另外,引用[3]提到安装CMake时出现找不到C++编译器的问题,这可能系统环境变量或编译安装有关。引用[4]中用户提供的步骤包括下载源码、解压、运行./bootstrap、gmake等,但可能在执行./bootstrap时遇到问题。 接下来,我需要分析可能的原因。首先,检查编译器是否安装。用户可能没有安装C++编译器,或者安装的版本不支持C++11。例如,g++版本需要至少4.8以上才能支持C++11。其次,检查编译器是否在系统路径中,即环境变量是否正确设置。如果CMake找不到编译器,可能是因为路径没有配置正确。此外,某些系统可能需要手动指定编译器路径,或者安装额外的开发工具包。 然后,根据引用[4]的步骤,用户可能是在执行./bootstrap时出现错误。此时,可能需要手动指定CC++编译器的路径,例如使用--prefix参数或者设置环境变量CCCXX。另外,用户可能需要升级现有的编译器到支持C++11的版本,比如安装g++-5或更高版本。 另外,引用[5]中提到使用VS2022、Qt5.15.2CMake3.23.2编译VTK,说明在Windows环境下可能需要使用Visual Studio的编译器,这时候需要确保Visual Studio的C++组件已安装,并且正确配置了环境变量。 可能的解决方案步骤包括: 1. 确认编译器已安装且版本足够新。 2. 设置环境变量,确保CMake能找到编译器。 3. 在运行./bootstrap时指定编译器路径或选项。 4. 更新系统或安装必要的开发工具包。 需要验证这些步骤的正确性,例如,检查g++ --version或clang++ --version的输出,确认版本是否符合要求。如果用户使用的是Linux系统,可能需要通过包管理器安装更新的编译器。对于Windows用户,可能需要安装Visual Studio并选择C++工作负载。 同时,引用[3]中提到的错误“Cannot find appropriate C++ compiler”可能与未安装编译器或路径问题有关,这也支持上述的解决方案方向。 总结,解决方案应分步骤指导用户检查编译安装、配置环境变量,并在必要时指定编译器路径或升级编译器。</think>### 解决CMake 3.23.0 Bootstrap过程中C++11编译器支持问题 #### 问题原因 CMake编译时需要检测系统是否安装了支持C++11标准的C++编译器。若出现错误“The C++ compiler does not support C++11”,通常由以下原因导致: 1. **未安装C++编译器**(如g++、clang或MSVC)[^3]; 2. **编译器版本过低**(例如g++ < 4.8或clang < 3.3)[^1]; 3. **环境变量未正确配置**(如PATH中缺少编译器路径); 4. **系统缺少开发工具链**(如build-essential或Development Tools)[^4]。 --- #### 解决方案步骤 ##### 1. 确认编译安装与版本 - **Linux/macOS** 执行以下命令检查编译器版本: ```bash g++ --version # 要求≥4.8 clang++ --version # 要求≥3.3 ``` 若未安装或版本过低: ```bash # Ubuntu/Debian sudo apt install g++-11 # 安装高版本编译器 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100 # CentOS sudo yum install devtoolset-11-gcc-c++ scl enable devtoolset-11 bash # macOS(需Homebrew) brew install gcc@11 ``` - **Windows** 确保已安装Visual Studio 2015或更高版本,并在安装时勾选“C++桌面开发”组件[^5]。通过命令行调用`cl`编译器: ```cmd cl /? # 验证是否可识别 ``` ##### 2. 配置环境变量 - **Linux/macOS** 将编译器路径加入`PATH`: ```bash export CC=/usr/bin/gcc-11 export CXX=/usr/bin/g++-11 ``` - **Windows** 使用Visual Studio开发者命令提示符(默认已配置环境变量),或手动添加`VCVARSALL.BAT`路径到环境变量[^5]。 ##### 3. 执行Bootstrap时指定编译器 在CMake源码目录中运行以下命令,强制指定编译器路径: ```bash ./bootstrap --prefix=/usr/local \ --parallel=$(nproc) \ -- -DCMAKE_CXX_COMPILER=/usr/bin/g++-11 \ -DCMAKE_C_COMPILER=/usr/bin/gcc-11 ``` 若使用clang: ```bash ./bootstrap -- -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang ``` ##### 4. 安装必要依赖 - **Linux** 安装开发工具链: ```bash # Ubuntu/Debian sudo apt install build-essential libssl-dev # CentOS sudo yum groupinstall "Development Tools" ``` --- #### 验证编译结果 完成上述步骤后,重新执行: ```bash ./bootstrap && make && sudo make install ``` 若成功,运行`cmake --version`应显示CMake 3.23.0---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Laravel技术社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值