应用程序使用Qt 5.12.9 for Android构建良好。但是在链接阶段失败了5.15.1(编译良好,因为已弃用的 Qt API 已修复)。arm64-v8a
仅为 ABI构建:
qmake ANDROID_ABIS="arm64-v8a" ...
有多个这样的链接错误:
~/Qt/5.15.1/android/include/QtCore/qobjectdefs_impl.h:415: undefined reference to `operator delete(void*)'
obj/QGCMapEngine.o: In function `QList<QString>::append(QString const&)':
~/Qt/5.15.1/android/include/QtCore/qlist.h:626: undefined reference to `__cxa_begin_catch'
~/Qt/5.15.1/android/include/QtCore/qlist.h:628: undefined reference to `__cxa_rethrow'
~/Qt/5.15.1/android/include/QtCore/qlist.h:629: undefined reference to `__cxa_end_catch'
~/Qt/5.15.1/android/include/QtCore/qlist.h:644: undefined reference to `__cxa_begin_catch'
~/Qt/5.15.1/android/include/QtCore/qlist.h:646: undefined reference to `__cxa_rethrow'
~/Qt/5.15.1/android/include/QtCore/qlist.h:647: undefined reference to `__cxa_end_catch'
尝试修复AndroidManifest.xml
此处提到的问题:Qt for Android known issues with no lucky。可通过安装最新的 Qt SDK 和从 docker 中的源代码构建的 Qt 进行重现。任何想法是什么问题以及如何解决?
参考:
- 完整的错误列表:qgroundcontrol#9136(注释)
- 项目:qgroundcontrol,分支:android_build_fix_qt5.15