执行指令交叉编译glib
meson --prefix=$(pwd)/install --cross-file ../671d -Dinternal_pcre=true -Dselinux=false -Dinstall
ed_tests=false -Ddtrace=false -Dfam=false -Dsystemtap=false -Dselinux=disabled -Dlibmount=false build
然后编译到最后出现只有libffi,而没有zlib
##正常情况
glib 2.62.6
Subprojects
libffi: YES
zlib : YES
##异常情况
glib 2.62.6
Subprojects
libffi: YES
相信跟踪meson的编译log,发现如下问题:
/usr/bin/pkg-config --modversion zlib 1.2.11
它竟然找到了zlib,很明显,这个zlib是x86编译的时候产生的。这不是我们想要的。
那么,zlib如何就被加载了呢?
pkg-config
真凶就是它。
执行指令
pkg-config --list-all
发现了zlib。把它移除即可。
find . -name zlib.pc
发现是在编译X86版本的时候已经处理了。所以在/usr/lib/x86_64-linux-gnu/pkgconfig有了一个zlib.pc文件,把这个文件移除就解决问题了。
版权声明:本文为wake_yan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。