源码安装包缺失pcre库或者版本低的问题

错误1:

-- Checking for module 'libpcre>=8.41'
--   No package 'libpcre' found

或者

错误2:

-- Checking for module 'libpcre>=8.41'
--   Requested 'libpcre >= 8.41' but version of libpcre is 8.33

一、错误1 No package 'libpcre' found

错误1的原因是libpcre没有安装导致的,安装pcre库即可解决

可参考下面2.1小节的源码安装方式【2】。

二、错误2 Requested 'libpcre >=*' but version of libpcre is *

错误2的原因有两个:

2.1 其一:本机电脑安装的是pcre8.33版本太低不符合要求,需要重新安装大于8.33版本的pcre库

pcre源码下载地址:PCRE Activity

linux系统源码安装pcre 8.44版本:

./configure --prefix=/usr                     \

            --docdir=/usr/share/doc/pcre-8.44 \

            --enable-unicode-properties       \

            --enable-pcre16                   \

            --enable-pcre32                   \

            --enable-pcregrep-libz            \

            --enable-pcregrep-libbz2          \

            --enable-pcretest-libreadline     \

            --disable-static

make -j2

make check

make install

查看pcre安装版本:

pcre-config --version

2.2 其二:本机电脑安装的最新的pcre库系统在源码安装其他包的时候找到了旧版本。

查看本机pcre的版本:

pcre-config --version

可见本机安装的是8.44版本

我们使用另一个命令【1】查看本机安装的pcre版本,该命令输出的是8.33版本而不是8.44版本:

pkg-config --moversion libpcre

 出现这个问题的原因是libpcre.pc文件记录着安装包的元信息,安装源码包的时候没有更新这些信息。所以系统存在两个版本的pc,系统默认找的是原始pc文件所在路径:

解决办法1:

直接将个人安装生成的pc文件替换原始系统安装生成的pc文件

比如本人将/usr/local/lib/pkgconfig下的libpcre复制到/usr/lib64/pkgconfig

cp /usr/local/lib/pkgconfig/libpcre* /usr/lib64/pkgconfig

解决办法2:

终端配置输入如下命令,指定系统寻找的pc文件,该命令只在当前终端生效:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

然后重新编其他包问题得到解决。

附录:

解决如上两个错误还有第三种方法【3】:

将pcre的源码库直接复制到需要安装的源码包内即可。

参考:

【1】cmake - Error package 'sqlite3>=3.7.11' not found - Ask Ubuntu

【2】https://www.mediawiki.org/wiki/Updating_to_PCRE_8.33_or_Higher

【3】Compile finds PCRE but also doesn't find it ? · Issue #86 · intel/hyperscan · GitHub

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值