如何让 pkg-config 找到 libpcap

How to make libpcap be found by pkg-config

我正在尝试调整需要 libpcap 安装的软件的依赖关系,但由于某种原因找不到它。

这个软件使用pkg-config试图找到依赖libpcap,我可以看到安装了libpcap-devlibpcap0.8:[=25=也安装了]

dpkg -s libpcap-dev:

Package: libpcap-dev
Status: install ok installed
Priority: optional
Section: libdevel
Installed-Size: 34
Maintainer: Romain Francoise <rfrancoise@debian.org>
Architecture: armhf
Multi-Arch: same
Source: libpcap
Version: 1.8.1-6
Depends: libpcap0.8-dev

dpkg -s libpcap0.8

Package: libpcap0.8
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 286
Maintainer: Romain Francoise <rfrancoise@debian.org>
Architecture: armhf
Multi-Arch: same
Source: libpcap
Version: 1.8.1-6
Replaces: libpcap0.8-dev (<< 1.0.0-2)
Depends: libc6 (>= 2.11)

我也可以看到共享库存在 ldconfig -p | grep libpcap:

    libpcap.so.0.8 (libc6,hard-float) => /lib/arm-linux-gnueabihf/libpcap.so.0.8
    libpcap.so (libc6,hard-float) => /lib/arm-linux-gnueabihf/libpcap.so

但是pkg-config --modversion libpcap还是找不到。我还查找了所有可用的 $PKG_DIR_PATH,其中 none 有一个 libpcap.pc 配置文件。

这就是我要构建的内容:https://github.com/martinpitt/umockdev

我不知道如何通知 pkg-config 关于 libpcap 的存在。

您系统上的 libpcap 基于 tcpdump.org libpcap 1.8.1 版本。该版本没有提供 .pc 文件,Debian 也懒得自己提供它们。

.pc 文件是在 libpcap 1.9 中添加的,因此 1.9.0 和所有后续版本,包括当前的 1.10.1 版本,都提供 .pc 文件。

您需要:

  1. 将您机器上的 OS 升级到提供 1.9 或 1.10 libpcap 版本的软件;
  2. 自行下载并安装 libpcap 1.10.1;
  3. 更改 umockdev 以使用 pcap-config 脚本(如果存在且不存在 .pc 文件)。