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

12 篇文章 0 订阅
10 篇文章 0 订阅

【环境介绍】

  • 操作系统: 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。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
出现错误"error while loading shared libraries: libzip.so.5: cannot open shared object file: No such file or directory"的原因是缺少libzip.so.5共享库文件。这个错误可能是由于系统找不到所需的共享库文件而引起的。解决这个问题的一种方法是安装缺少的共享库文件。 有两种解决方案可以尝试解决这个问题。第一种解决方案是通过使用包管理工具来安装所需的共享库文件。例如,如果你使用的是Debian或Ubuntu系统,你可以使用以下命令安装libzip.so.5共享库文件: sudo apt-get install libzip5 如果你使用的是CentOS或Fedora系统,你可以使用以下命令安装libzip.so.5共享库文件: sudo yum install libzip5 另一种解决方案是手动下载共享库文件并将其放置在正确的位置。你可以在网上搜索libzip.so.5共享库文件的下载链接,并根据你的操作系统和架构下载适用的文件。下载后,你可以将共享库文件复制到/usr/lib或/usr/local/lib等标准的共享库文件目录中。 请注意,如果你选择手动下载和安装共享库文件,你需要确保你下载的文件与你的操作系统和架构兼容。 综上所述,要解决"error while loading shared libraries: libzip.so.5: cannot open shared object file: No such file or directory"错误,你可以尝试使用包管理工具来安装所需的共享库文件,或者手动下载并安装共享库文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [error while loading shared libraries:libtinfo.so.5: cannot open shared object file : No such file](https://blog.csdn.net/hbtstsxy/article/details/125479835)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MYSQL之 error while loading shared libraries: libtinfo.so.5: cannot open shared objectfile: No such ...](https://download.csdn.net/download/weixin_42183486/15516386)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [php-fpm: error while loading shared libraries: libonig.so.5: cannot open shared object file: No such](https://blog.csdn.net/shierxi/article/details/107014199)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值