Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-104032

Can't build QT 5.15.4 for android

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P2: Important
    • None
    • 5.15.4
    • Build System
    • None
    • Ubuntu 22.04 LTS
    • Android, Linux/X11

    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.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            assam Assam Boudjelthia
            cgmiccono Cristian Galleguillos
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes