当前位置:   article > 正文

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

libpcre

错误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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/261156
推荐阅读
相关标签
  

闽ICP备14008679号