libffi.pc 在 Ubuntu 上坏了吗?

libffi.pc 在 Ubuntu 上坏了吗?

我正在尝试为 Trusty Tahr armhf 环境交叉编译 wayland(来自 freedesktop.org)。

为了设置交叉编译,我有一个 arm pkg-config 脚本,它正确设置 PKG_CONFIG_LIBDIR 和 PKG_CONFIG_SYSROOT_DIR 以指向我的 armhf sysroot 和它的 pkgconfig 目录。

在 sysroot 中可以找到:~/ubuntu-core-14.04.3-core-armhf-forqemu/usr/lib/arm-linux-gnueabihf/pkgconfig/libffi.pc

在这个 pkg-config 文件中,有编译器在需要链接到 libffi 时以及在编译依赖于 libffi 标头的源时使用的行:

Libs: -lffi
Cflags:

当我去编译 wayland 时,它的配置脚本正确找到了 libffi,但是当我调用“make”时,引用 ffi.h 的源无法找到包含。

其他库的 .pc 文件似乎使用链接器指令填充上述行以添加库搜索路径,并使用编译器指令添加包含路径,如下所示(以 libdrm.pc 为例):

Libs: -L${libdir} -ldrm
Cflags: -I${includedir} -I${includedir}/libdrm

我查看了 Launchpad,发现 libffi.pc 与我在 libffi-dev 包中看到的相同,即使在 wily 中也是如此,甚至对于 amd64 平台也是如此。

没有其他人提到过这个问题,所以我想知道这是否不是一个错误,或者只是一个似乎只在跨构建情况下出现的错误(大多数人不会遇到)。

我提出这个问题的目的是为了回答它是否是一个错误,如果答案是肯定的,我将在启动板中提交一个错误来修复它。

我的猜测是,因为 libffi 及其头文件所在的库和包含目录是通常已经在编译器和链接器搜索路径中的公共目录,所以 libffi.a/so 及其头文件总是被已经包含的路径隐式找到,并且这种情况只有在交叉编译时才会显示。

引用的包的链接:

armhf 信任 libffi-dev

amd64 wily libffi-dev

相关内容