Windows下为QML版Android应用交叉编译Poppler的构建问题求助
Qt Android端内嵌PDF渲染应用开发问题记录
项目背景
- 需求说明:开发无需调用外部系统阅读器即可直接展示PDF文件的Android应用,全流程基于Windows 10环境下的Qt Creator,采用QML/Qt框架完成开发。
- 前期选型调研结论:
- QtPDF方案:功能完全匹配开发需求,但经Qt官方技术支持确认,暂不支持Android平台,Android适配优先级极低,短期内无法投入使用,对应已知问题编号为QTBUG-83459。
- Poppler方案:可采用开源社区提供的Poppler-QML插件(对应代码仓库为dept2/Poppler-QML-plugin),功能可覆盖开发需求,但因需适配Android平台,必须使用Android工具链完成交叉编译,因自身对Qt Creator的Android交叉编译配置经验不足,始终未完成该组件的构建流程。
- 固定开发环境版本:
- 操作系统:Windows 10
- 开发工具套件:Qt 5.15.2、Qt Creator 4.14.0
- Android编译工具链:NDK 21.3.6528147
- 目标适配ABI版本:x86(用于AVD模拟器调试)、armeabi-v7a、arm64-v8a
- 最终选型结论:确定采用Poppler技术路线完成PDF功能开发。
当前编译进度与报错情况
已完成的推进操作:
- 拉取Poppler源码启动首次构建,初期CMake无法识别Freetype依赖,因此拉取Freetype源码完成编译后,将对应安装路径配置给CMake解决识别问题。
- 依次配置JPEG依赖(openjpeg2)、ZLIB、PNG、TIFF依赖,其中zlib、png、tiff三个依赖均可被CMake正常识别。
当前遇到的具体报错:
- OpenJPEG2依赖配置报错:CMake在对应路径识别到
OpenJPEGConfig.cmake文件时,在文件第41行触发"ooops"错误,调用栈指向Poppler主CMakeLists.txt第251行的find_package调用逻辑。 - CMake无法识别Cairo、Boost两个依赖。
核心待解疑问
- 当前采用的「逐一排查依赖、自行编译所有第三方依赖后配置路径给CMake」的流程是否正确?
- 流程中是否遗漏了关键的前置配置步骤?
- 缺乏成熟的Android平台Poppler-QML插件交叉编译配置方案参考,对整个交叉编译流程的逻辑存在困惑。
内容的提问来源于stack exchange,提问作者Conrad.R
相关产品推荐
相关产品推荐

