在 Windows 上为 Android 从源构建 Qt5.13.2 时出错

Error when building Qt5.13.2 from source on Windows for Android

我在尝试从 Android 的源代码构建 Qt 5.13.2 时遇到问题。 我在 Windows 10 上使用了 PowerShell。 在配置命令之前,我设置了 JDK_ROOT 路径:

set "JDK_ROOT=C:\Program Files\Java\jdk1.8.0_241\bin

这条配置命令执行成功:

..\src\qt5\configure -prefix E:\Qt\Static\Qt5.13.2Android -platform win32-g++ -opengl es2 -xplatform android-clang -android-sdk C:\Users\user\AppData\Local\Android\Sdk -android-ndk C:\Users\user\AppData\Local\Android\Sdk\ndk.3.6528147 -nomake tests -nomake examples -opensource -confirm-license

之后我执行:

mingw32-make -j4

并且在开始后不久构建停止,最后输出如下:

del ..\..\..\lib\libQt5Bootstrap.a 2>NUL
ar -rc ..\..\..\lib\libQt5Bootstrap.a @object_script.libQt5Bootstrap.Release
mingw32-make[4]: Leaving directory 'E:/Qt/Static/build-android/qtbase/src/tools/bootstrap'
mingw32-make[3]: Leaving directory 'E:/Qt/Static/build-android/qtbase/src/tools/bootstrap'
mingw32-make[2]: Leaving directory 'E:/Qt/Static/build-android/qtbase/src'
mingw32-make[1]: *** [Makefile:51: sub-src-make_first] Error 2
mingw32-make[1]: Leaving directory 'E:/Qt/Static/build-android/qtbase'
mingw32-make: *** [Makefile:87: module-qtbase-make_first] Error 2

关于构建停止的任何建议或想法?提前致谢。

更新:Qt 5.14.2 和 Qt 5.12.5

也是如此

makedocumentation 表示 -j 选项告诉它将工作分成多个 运行 并行的“作业”。这很有用,因为这样可以更快地完成。但是随着每个作业都写入同一个控制台,输出变得更加混乱,您无法轻易分辨出哪个输出来自哪个作业。因此,当您遇到编译错误时,通常很难找到错误消息的实际内容。所以当我遇到错误时,我通常会删除 -j 选项,以便输出保持顺序并且我可以实际读取它。

注意:您在评论中写道,只需删除此选项即可使 qt 成功编译,所以这就是我将此作为答案的原因。但我真的不知道为什么这会有所帮助。也许有一些东西在多个作业中被乱序编译。无论如何,很高兴这个回答对您有所帮助。