在我的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 ...
希望我能简单地找到对缺失函数的引用。否则,请告知如何实现第二种选择。问候。
答案 0 :(得分:1)
事实证明,zlib已经是Android NDK的一部分了。所需要的只是-lz flag:
LOCAL_LDLIBS += -lz