Details
-
Bug
-
Resolution: Cannot Reproduce
-
P2: Important
-
None
-
5.15.4
-
None
-
Ubuntu 22.04 LTS
Description
Hi,
I was trying to build QT 5.15.4 for android following the steps in the documentation, I added the prefix, android-ndk and android-sdk arguments:
./configure -xplatform android-clang -prefix ~/Qt/5.15.4/android -disable-rpath -nomake tests -nomake examples -android-ndk ~/Android/Sdk/ndk/21.3.6528147 -android-sdk ~/Android/Sdk/ -no-warnings-are-errors -opensource -confirm-license
When i try to build qt for android I get the following error:
~/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -c -target armv7a-linux-androideabi21 -fno-limit-debug-info -fPIC -fstack-protector-strong -DANDROID -O2 -mthumb -Oz -std=gnu11 -fvisibility=hidden -Wall -W -D_REENTRANT -fPIC -DQT_NO_LINKED_LIST -DQT_NO_JAVA_STYLE_ITERATORS -DLIBS_SUFFIX=\"_armeabi-v7a.so\" -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_NO_DEBUG -DPCRE2_CODE_UNIT_WIDTH=16 -I~/Qt/5.15.4/Src/qtbase/src/corelib -I. -Iglobal -I~/Qt/5.15.4/Src/qtbase/src/3rdparty/md5 -I~/Qt/5.15.4/Src/qtbase/src/3rdparty/md4 -I~/Qt/5.15.4/Src/qtbase/src/3rdparty/sha3 -I~/Qt/5.15.4/Src/qtbase/src/3rdparty -I~/Qt/5.15.4/Src/qtbase/src/3rdparty/double-conversion/include -I~/Qt/5.15.4/Src/qtbase/src/3rdparty/harfbuzz/src -I~/Qt/5.15.4/Src/qtbase/src/3rdparty/forkfd -I~/Qt/5.15.4/Src/qtbase/src/3rdparty/tinycbor/src -I.rcc/armeabi-v7a -I~/Qt/5.15.4/Src/qtbase/include -I~/Qt/5.15.4/Src/qtbase/include/QtCore -I../../include -I../../include/QtCore -I~/Qt/5.15.4/Src/qtbase/include/QtCore/5.15.4 -I~/Qt/5.15.4/Src/qtbase/include/QtCore/5.15.4/QtCore -I../../include/QtCore/5.15.4 -I../../include/QtCore/5.15.4/QtCore -I.moc/armeabi-v7a -I.tracegen/armeabi-v7a -I~/Qt/5.15.4/Src/qtbase/src/3rdparty/pcre2/src -I~/Qt/5.15.4/Src/qtbase/mkspecs/android-clang ~/Qt/5.15.4/Src/qtbase/src/corelib/global/minimum-linux.S -o .obj/armeabi-v7a/minimum-linux.o ~/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/bits/get_device_api_level_inlines.h:38:33: error: unexpected token in variant, expected ')' int __system_property_get(const char* __name, char* __value); ^ ~/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/bits/get_device_api_level_inlines.h:39:16: error: unexpected token in variant, expected ')' int atoi(const char* __s) __attribute__((__pure__)); ^ ~/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/bits/get_device_api_level_inlines.h:41:17: error: unexpected token in argument list static __inline int android_get_device_api_level() { ^ ~/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/bits/get_device_api_level_inlines.h:42:13: error: unexpected token in argument list char value[92] = { 0 }; ^ ~/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/bits/get_device_api_level_inlines.h:43:51: error: unexpected token in variant, expected ')' if (__system_property_get("ro.build.version.sdk", value) < 1) return -1; ^ ~/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/bits/get_device_api_level_inlines.h:44:17: error: unexpected token in argument list int api_level = atoi(value); ^ ~/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/bits/get_device_api_level_inlines.h:45:26: error: unexpected token in argument list return (api_level > 0) ? api_level : -1; ^ ~/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/include/bits/get_device_api_level_inlines.h:46:1: error: invalid instruction, did you mean: b? } ^ make[4]: *** [Makefile.Armeabi-v7a:1745: .obj/armeabi-v7a/minimum-linux.o] Error 1 make[4]: Leaving directory '~/Qt/5.15.4/build-qt-android-21/qtbase/src/corelib' make[3]: *** [Makefile:46: armeabi-v7a-all] Error 2 make[3]: Leaving directory '~/Qt/5.15.4/build-qt-android-24/qtbase/src/corelib' make[2]: *** [Makefile:230: sub-corelib-make_first] Error 2 make[2]: Leaving directory '~/Qt/5.15.4/build-qt-android-24/qtbase/src' make[1]: *** [Makefile:51: sub-src-make_first] Error 2 make[1]: Leaving directory '~/Qt/5.15.4/build-qt-android-24/qtbase' make: *** [Makefile:88: module-qtbase-make_first] Error 2
I tried to build it with different NDK versions, despite this, I always get the same error.
In the newest NDK, the prebuilt binaries haven't the architecture as prefix, I fixed this, creating a symlink of the original binary with the (arch)-binname and it worked, until it arrives to this same error.
I built the desktop version (GCC 64bit) without any problem.