【环境介绍】

  • 操作系统: centos-release-7-3.1611.el7.centos.x86_64
  • Apache httpd: Apache/2.4.43 (Unix), 安装在了/usr/httpd/
  • PHP: PHP 7.4.5

【问题描述】
为PHP增加zip扩展的时候,进入php编译包的ext文件夹下,进入zip文件夹,用 ./configure --with-php-config=/usr/local/php7.4.5/bin/php-config 生成Makefile文件的时候报错,system libzip must be upgraded to version >= 0.11


但是我已经下载了高版本的libzip,并安装到了/usr/local/lib。

$ wget https://libzip.org/download/libzip-1.3.2.tar.gz
$ tar xvf libzip-1.3.2.tar.gz
$ cd libzip-1.3.2
$ ./configure
$ make && make install


【解决方案】
网上的解决方案千篇一律,且百无一用,最后感谢某位大哥的帖子指明方向,https://www.cnblogs.com/equation/p/12352596.html。

首先说明的是,在编译的时候pkg-config通过环境变量PKG_CONFIG_PATH里面的路径去找到*.pc文件(* .pc文件就存放的是头文件和动态链接库的路径

然后找到编译所需的其他依赖的动态链接库头文件和库路径。出现这个原因即编译的时候没有指定到相应的pc文件路径。

我的libzip装在/usr/local/lib (find / -name libzip.so命令找下即可),里面有个pkconfig存放的就是pc文件,所以要在编译zip的时候,保证pkg-config找到libzip的.pc文件。

  • export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" (这里填你自己对应的文件夹,export 的效力仅限于该次登陆操作)
  • .去php的zip源码里面,/configure --with-php-config=/usr/local/php7.4.5/bin/php-config,这一步就会成功了,然后再make && make install即可。
  • 最后还是需要将动态链接库路径加入到 /etc/ld.so.conf ,因为pkg-config只是在编译的时候有用,真正运行程序的时候,也需要寻找此动态库路径,这里我没有改ld.so.conf文件,而是在 /etc/ld.so.conf.d/文件夹里面加了个libzip.confld.so.conf会引用这个文件的配置。最后运行ldconfig更新cache,可以用ldconfig -p|grep libzip查看有没有将libzip加入程序运行时查找的动态库中。

【简单总结】

pkg-config命令经常被用于Makefile文件用来找寻头文件和动态链接库,pkconfig里面的*.pc文件存放的就是动态库和头文件路径,通过设置环境变量PKG_CONFIG_PATH为我们*.pc所在位置,pkg-congfig就能找到我们的头文件和动态库文件了。

pkg-config仅负责编译链接时头文件和动态链接库的查找。对于程序运行时加载动态链接库,pkg-config就无能为力了,此时需要用到ldconfig命令,该命令为程序运行时提供动态链接库的运行时绑定,
通过加载 /etc/ld.so.conf下的路径信息,生成动态库的缓存/etc/ld.so.cache,为程序运行时提供动态库的链接,通过ldconfig -p查看动态链接库缓存信息。因此需要将我们的动态链接库路径添加到 /etc/ld.so.conf中,然后运行ldconfig更新cache。

error: system libzip must be upgraded to version #62= 0.11【问题解决】php7编译zip报错相关推荐

  1. Linux安装PHP:system libzip must be upgraded to version = 0.11

    libzip 版本过低,先卸载: yum remove libzip 下载新版本 wget https://nih.at/libzip/libzip-1.2.0.tar.gz tar -zxvf li ...

  2. ERROR: pyHook-1.5.1-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform.安装pyhook报错

    ERROR: pyHook-1.5.1-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform.安装pyhook报错 系统 ...

  3. Idea编译项目报错Error:Kotlin: Module was compiled with an incompatible version of Kotlin.

    1.项目报错 error:Kotlin:module was compiled with an incompatible version of kotlin the binary version of ...

  4. windows10下编译dllib报错: ERROR: Failed building wheel for dlib

    一.报错信息 在安装dlib的时候,使用pip进行安装 pip install dlib 二.解决方式 1.检查自己是否已经安装了cmake 首先要检测自己本机是否已经安装了cmake,因为安装dli ...

  5. 第一行代码 第三版 第11章网络技术 11.6.1 Retrofit 应用 报错:android.system.ErrnoException: isConnected failed: ECONNRE

    在学习第11章 11.6.1Retrofit用法,这节的时候发生的报错:书上关于这个地方并没有说. 我搜索问题的关键语句是: java.net.ConnectException: Failed to ...

  6. 解决Cmake编译 OPENCV_DNN_CUDA 报错: CMake Error at modules/dnn/CMakeLists.txt:39.

    首先,在camke编译过程中,不仅仅需要看报错的error部分,往上滑动会看见一行信息: -- Could NOT find CUDNN: Found unsuitable version " ...

  7. 【错误记录】编译 ijkplayer 报错 (fatal error: libyuv.h: No such file or directory #include “libyuv.h“ )

    文章目录 一.报错信息 二.解决方案 参考 https://github.com/bilibili/ijkplayer 项目的编译过程 ; 一.报错信息 在编译完 ffmpeg 之后 , 执行 ./c ...

  8. 【错误记录】编译 ijkplayer 报错 (fatal error: ijksoundtouch/ijksoundtouch_wrap.h: No such file or directory )

    文章目录 一.报错信息 二.解决方案 参考 https://github.com/bilibili/ijkplayer 项目的编译过程 ; 一.报错信息 在编译完 ffmpeg 之后 , 执行 ./c ...

  9. 【错误记录】Visual Studio 中编译 NDK 报错 ( error : cannot use ‘throw‘ with exceptions disabled )

    文章目录 一.报错信息 二.解决方案 一.报错信息 使用 Visual Studio 2019 编译 Android NDK 项目 , 报错如下 : 已启动生成- 1>------ 已启动生成: ...

  10. 【错误记录】Android Studio 编译报错 ( VirtualApp 编译 NDK 报错 | Error:A problem occurred configuring project ‘: )

    文章目录 一.报错信息 二.解决方案 一.报错信息 编译 VirtualApp ( https://github.com/asLody/VirtualApp ) 时 , 弹出如下错误 ; Error: ...

最新文章

  1. 前端项目课程3 jquery1.8.3到1.11.1有了哪些新改变
  2. HTML页面中点击按钮关闭页面几种方式与取消
  3. Android实现自定义的 时间日期 控件
  4. 修改anaconda中conda和pip的源为清华源
  5. Oracle监听的静态注册和动态注册
  6. C# DES加密/解密类
  7. 分析师称iPhone 13将支持卫星通信,但仅限特定市场
  8. 开博第一篇,附上我开通博客的理由
  9. 【转】12 TOP Command Examples in Linux
  10. 开发环境搭建好,也要做镜像
  11. 2018年,数万款小程序暴毙在路上
  12. Uva 10247 (组合计数)
  13. 从图灵奖小插曲看50年来什么样的人工智能最受追捧
  14. 【算法特训总结】计算机经典算法的核心思想及独特角度的解读
  15. 蓝桥杯 ADV-222 求arccos
  16. vue的登录页面功能实现
  17. Java中文件File
  18. Linux下如何设置程序的开机自启动功能
  19. C#学习笔记----C#连接MySQL数据库
  20. Kafka手动提交偏移量的作用到底是什么???

热门文章

  1. xLang 的类型转换
  2. Linux网络流量监控
  3. DCT和IDCT原始公式计算
  4. 第3章【思考与练习4】数据清洗,从studentsInfo.xlsx 文件的“Group1”表单中读取数据。数据填充,使用习题1的数据,使用列的平均值填充“体重”和“成绩”列的NaN数据。
  5. vi毕业设计参考文献优秀范例
  6. BOOST升压有源功率因数校正
  7. yd什么意思_YD是什么意思
  8. stata陈强:计量经济学及stata应用_陈强 第四章 一元线性回归
  9. stata陈强:第十五章 短面板
  10. html轮播图片在线制作,如何制作图片轮播?轮播图在线制作技巧