Qt for Android - 未定义压缩和解压缩参考

Qt for Android - undefined reference to compress and uncompress

在我的 Android 本机项目中,我需要使用一些核心 Qt 功能。按照 http://qt-project.org/wiki/Qt5ForAndroidBuilding 的说明,我成功地为 Android 构建了 Qt。我可以看到所有生成的存档文件都存储在 qtbase/lib 目录中。

我正在将我的 C++ 代码与 libQt5Core.a、libQt5Bootstrap.a 和 libqtpcre.a 链接起来。几乎我所有的 Qt 引用都已解决,但有两个非 Qt 引用 - compress()uncompress()。我在 qtbase/lib/*.a 个文件中搜索了这些符号,但没有找到任何定义。

那么这两个函数是在哪里定义的呢?它们是标准 NDK 库之一,还是我需要单独构建一些东西?

看来qbytearray.cpp正在使用这两个功能。如果未定义 QT_NO_COMPRESS,则似乎已定义这些函数。如果我能以某种方式定义 QT_NO_COMPRESS,那么看起来我可以摆脱未解决的错误。我如何定义这个?我是否将其传递给配置脚本?

$ ./configure -DQT_NO_COMPRESS ...

希望我能简单地找到对缺失函数的引用。否则,请就如何实现第二个选项提出建议。问候。

事实证明 zlib 已经是 Android NDK 的一部分。所需要的只是 -lz 标志:

LOCAL_LDLIBS += -lz