Theoretically it can be:
1 | git clone --recursive https://code.qt.io/qt/qt5.git --branch v6.1.0 |
or alternatively:
1 2 | git clone https://code.qt.io/qt/qt5.git --branch v6.1.0 ./init-repository --branch --module-subset=essential,qtandroidextras,qtsvg,qtquickcontrols2,qtgraphicaleffects,qtwebsockets,qtmultimedia |
or
1 | ./init-repository --module-subset=all |
and the following script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | rem This script is based on the steps decribed here: https://doc-snapshots.qt.io/qt6-dev/android-building.html rem Strawberry Perl and MinGW are already in PATH after install. rem unzip /c/Users/D-Ef/Downloads/qt-everywhere-src-6.0.2.zip set "CMAKE_ROOT=E:\PFiles\cmake-3.19.1-win64-x64\bin" set "NINJA_ROOT=E:\PFiles\ninja-win" set "JDK_ROOT=C:\Program Files\Android\Android Studio\jre\bin" set "MINGW_ROOT=E:\PFiles\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin" set "PERL_ROOT=E:\PFiles\Strawberry\perl\bin" set PATH=%CMAKE_ROOT%;%PATH% set PATH=%NINJA_ROOT%;%PATH% set PATH=%JDK_ROOT%;%PATH% set PATH=%MINGW_ROOT%;%PATH% set PATH=%PERL_ROOT%;%PATH% set PATH=E:\PFiles\Python35;%PATH% rem Check if the tools are in PATH where gcc where mingw32-make.exe where perl.exe where javac.exe where python.exe where cmake.exe where ninja.exe set "ANDROID_SDK_ROOT=C:\Users\D-Ef\AppData\Local\Android\Sdk" set "ANDROID_NDK_PATH=C:\Users\D-Ef\AppData\Local\Android\Sdk\ndk-bundle" rem See qtbase\mkspecs\android-clang\qmake.conf set "ANDROID_NDK_PLATFORM=android-21" rem see %ANDROID_SDK_ROOT%\build-tools folder set "ANDROID_BUILD_TOOLS_REVISION=29.0.2" set "MY_INSTALL_PATH=E:\Qt\Qt6.0.2\android" set QT_HOST_PATH=%MY_INSTALL_PATH% rem QT_NO_EXCEPTIONS disables "try { } catch (...) {}" surrounding the user code in qthread_unix.cpp configure.bat -prefix %MY_INSTALL_PATH% -qt-host-path %MY_INSTALL_PATH% -DQT_NO_EXCEPTIONS=1 -release -force-debug-info -platform win32-g++ -opengl es2 -xplatform android-clang ^ -android-ndk %ANDROID_NDK_PATH% -android-sdk %ANDROID_SDK_ROOT% -android-abis arm64-v8a -android-ndk-host windows-x86_64 ^ -opensource -confirm-license -nomake tests -nomake examples ^ -skip networkauth -skip serialport -skip serialbus -skip activeqt -skip quick3d -skip quicktimeline -skip lottie -skip remoteobjects -skip scxml ^ -skip webglplugin -skip webchannel -skip gamepad -skip 3d -skip wayland -skip connectivity -skip sensors -skip script ^ -skip location -skip xmlpatterns -skip speech -skip virtualkeyboard -skip datavis3d -skip charts -skip webengine -skip webview -skip doc cmake --build . --parallel cmake --install . |
Probably -qt-host-path
should point to an already existing native build of your host platform, otherwise we’ll get:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 'E:/PFiles/cmake-3.19.1-win64-x64/bin/cmake.exe' '-DQT_HOST_PATH=E://Qt//Qt6.0.2//android' '-DCMAKE_INSTALL_PREFIX=E://Qt//Qt6.0.2//android' '-DQT_QMAKE_TARGET_MKSPEC=win32-g++' '-DQT_QMAKE_TARGET_MKSPEC=android-clang' '-DANDROID_SDK_ROOT=C://Users//D-Ef//AppData//Local//Android//Sdk' '-DANDROID_NDK_ROOT=C://Users//D-Ef//AppData//Local//Android//Sdk//ndk-bundle' '-DANDROID_ABI=arm64-v8a' '-DQT_BUILD_TESTS=FALSE' '-DQT_BUILD_EXAMPLES=FALSE' '-DCMAKE_BUILD_TYPE=RelWithDebInfo' '-DQT_EXTRA_DEFINES=QT_NO_EXCEPTIONS=1' '-DINPUT_opengl=es2' '-G' 'Ninja' 'E:/repos/qt-everywhere-src-6.0.2' -- Android NDK detected: C://Users//D-Ef//AppData//Local//Android//Sdk/ndk-bundle -- Android toolchain file detected Check dependencies of 'qtbase' Check dependencies of 'qt5compat' Check dependencies of 'qtsvg' Check dependencies of 'qtdeclarative' Check dependencies of 'qttools' Check dependencies of 'qtquickcontrols2' Check dependencies of 'qtdoc' Check dependencies of 'qtshadertools' Check dependencies of 'qtquick3d' Check dependencies of 'qtquicktimeline' Check dependencies of 'qttranslations' Check dependencies of 'qtwayland' Configuring 'qtbase' -- Android NDK detected: C://Users//D-Ef//AppData//Local//Android//Sdk/ndk-bundle -- Android toolchain file detected CMake Error at qtbase/cmake/QtSetup.cmake:173 (message): You need to set QT_HOST_PATH to cross compile Qt. Call Stack (most recent call first): qtbase/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake:173 (include) qtbase/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake:271 (qt_build_internals_set_up_private_api) qtbase/CMakeLists.txt:57 (qt_build_repo_begin) -- Configuring incomplete, errors occurred! See also "E:/repos/qt-everywhere-src-6.0.2/CMakeFiles/CMakeOutput.log". See also "E:/repos/qt-everywhere-src-6.0.2/CMakeFiles/CMakeError.log". CMake Error at qtbase/cmake/QtProcessConfigureArgs.cmake:786 (message): CMake exited with code 1. |
So probably we need to build QT for Windows first, so I tried:
1 2 | git submodule foreach --recursive "git clean -dfx" git submodule foreach --recursive "git checkout ." |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 set "CMAKE_ROOT=E:\PFiles\cmake-3.19.1-win64-x64\bin" set "NINJA_ROOT=E:\PFiles\ninja-win" set "MINGW_ROOT=E:\PFiles\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin" set "PERL_ROOT=E:\PFiles\Strawberry\perl\bin" set PATH=%CMAKE_ROOT%;%PATH% set PATH=%NINJA_ROOT%;%PATH% set PATH=%MINGW_ROOT%;%PATH% set PATH=%PERL_ROOT%;%PATH% set PATH=E:\PFiles\Python35;%PATH% rem Check if the tools are in PATH where gcc where mingw32-make.exe where perl.exe where python.exe where cmake.exe where ninja.exe set "MY_INSTALL_PATH=E:\Qt\Qt6.0.2\windows" set CL=/MP configure.bat -prefix %MY_INSTALL_PATH% -DQT_NO_EXCEPTIONS=1 -release -force-debug-info -platform win32-msvc -opengl es2 ^ -opensource -confirm-license -nomake tests -nomake examples ^ -skip qtgraphicaleffects |
and got the following summary:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | Building for: win32-msvc (x86_64, CPU features: cx16 mmx sse sse2 sse3) Compiler: gcc 8.1.0 Build options: Mode ................................... release (with debug info) Optimize release build for size ........ no Fully optimize release builds (-O3) .... no Building shared libraries .............. yes Using C standard ....................... C11 Using C++ standard ..................... C++17 Generating GDB index ................... no Relocatable ............................ yes Using precompiled headers .............. yes Using LTCG ............................. no Target compiler supports: SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX .................................. <none> AVX512 ............................... <none> Other x86 ............................ AES RDRAND SHA Intrinsics without -mXXX option ...... yes Sanitizers: Addresses ............................ no Threads .............................. no Memory ............................... no Fuzzer (instrumentation only) ........ no Undefined ............................ no Build parts ............................ libs tools App store compliance ................... no Qt modules and options: Qt Concurrent .......................... yes Qt D-Bus ............................... yes Qt D-Bus directly linked to libdbus .... no Qt Gui ................................. yes Qt Network ............................. yes Qt Sql ................................. yes Qt Testlib ............................. yes Qt Widgets ............................. yes Qt Xml ................................. yes Support enabled for: Using pkg-config ....................... no udev ................................... no Using system zlib ...................... no Zstandard support ...................... no Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... no ICU .................................... no Using system libb2 ..................... no Built-in copy of the MIME database ..... yes Tracing backend ........................ <none> Logging backends: journald ............................. no syslog ............................... no slog2 ................................ no PCRE2 .................................. yes Using system PCRE2 ................... no Qt Sql: SQL item models ........................ yes Qt Network: getifaddrs() ........................... no IPv6 ifname ............................ no libproxy ............................... no Schannel ............................... no OpenSSL ................................ yes Qt directly linked to OpenSSL ........ no OpenSSL 1.1 ............................ yes DTLS ................................... yes OCSP-stapling .......................... yes SCTP ................................... no Use system proxies ..................... yes GSSAPI ................................. no Brotli Decompression Support ........... no Qt Gui: Accessibility .......................... yes FreeType ............................... yes Using system FreeType ................ no HarfBuzz ............................... yes Using system HarfBuzz ................ no Fontconfig ............................. no Image formats: GIF .................................. yes ICO .................................. yes JPEG ................................. yes Using system libjpeg ............... no PNG .................................. yes Using system libpng ................ no Text formats: HtmlParser ........................... yes CssParser ............................ yes OdfWriter ............................ yes MarkdownReader ....................... yes Using system libmd4c ............... no MarkdownWriter ....................... yes EGL .................................... no OpenVG ................................. no OpenGL: Desktop OpenGL ....................... no Dynamic OpenGL ....................... yes OpenGL ES 2.0 ........................ no OpenGL ES 3.0 ........................ no OpenGL ES 3.1 ........................ no OpenGL ES 3.2 .......................-- Configuring done . no Vulkan ................................. no Session Management ..................... yes Features used by QPA backends: evdev .................................. no libinput ............................... no INTEGRITY HID .......................... no mtdev .................................. no tslib .................................. no xkbcommon .............................. no X11 specific: XLib ................................. no XCB Xlib ............................. no EGL on X11 ........................... no xkbcommon-x11 ........................ no QPA backends: DirectFB ............................... no EGLFS .................................. no EGLFS details: EGLFS OpenWFD ........................ no EGLFS i.Mx6 .......................... no EGLFS i.Mx6 Wayland .................. no EGLFS RCAR ........................... no EGLFS EGLDevice ...................... no EGLFS GBM ............................ no EGLFS VSP2 ........................... no EGLFS Mali ........................... no EGLFS Raspberry Pi ................... no EGLFS X11 ............................ no LinuxFB ................................ no VNC .................................... no QNX: lgmon ................................ no IMF .................................. no XCB: Using system-provided xcb-xinput ..... no Native painting (experimental) ....... no GL integrations: GLX Plugin ......................... no XCB GLX .......................... no EGL-X11 Plugin ..................... no Windows: Direct 2D ............................ yes Direct 2D 1.1 ........................ yes DirectWrite .......................... yes DirectWrite 3 ........................ no Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows WindowsVista Qt Testlib: Tester for item models ................. yes Qt PrintSupport: CUPS ................................... no Qt Sql Drivers: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... yes PostgreSQL ............................. no SQLite ................................. yes Using system provided SQLite ......... no Qt is now configured for building. Just run 'cmake --build . --parallel' Once everything is built, you must run 'cmake --install .' Qt will be installed into 'E:/Qt/Qt6.0.2/windows' To configure and build other Qt modules, you can use the following convenience script: E:/Qt/Qt6.0.2/windows/bin/qt-configure-module.bat If reconfiguration fails for some reason, try to remove 'CMakeCache.txt' from the build directory -- Generating done CMake Warning: Manually-specified variables were not used by the project: BUILD_qtgraphicaleffects -- Build files have been written to: E:/repos/qt5/qtbase |
Then I did
1 | cmake --build . --parallel |
and got a compiler error:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | E:\repos\qt5\qtbase>cmake --build . --parallel [47/1791] Building CXX object src/tools/bootstrap/CMakeFiles/Bootstrap.dir/__/__/corelib/global/qmalloc.cpp.obj FAILED: src/tools/bootstrap/CMakeFiles/Bootstrap.dir/__/__/corelib/global/qmalloc.cpp.obj E:\PFiles\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\c++.exe -DHAVE_CONFIG_H -DMINGW_HAS_SECURE_API=1 -DPCRE2_CODE_UNIT_WIDTH=16 -DPCRE2_DISABLE_JIT -DPCRE2_STATIC -DQT_BOOTSTRAPPED -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS=1 -DQT_NO_FOREACH -DQT_USE_QSTRINGBUILDER -DQT_VERSION_MAJOR=6 -DQT_VERSION_MINOR=1 -DQT_VERSION_PATCH=0 -DQT_VERSION_STR=\"6.1.0\" -DUNICODE -DWIN32 -DWIN64 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN32_WINNT=0x0601 -D_WIN64 -Isrc/corelib/Core_autogen/include -Iinclude -Iinclude/QtCore -Isrc/corelib -Isrc/corelib/global -Isrc/corelib/kernel -Isrc/corelib/../3rdparty/tinycbor/src -Iinclude/QtCore/6.1.0 -Iinclude/QtCore/6.1.0/QtCore -Isrc/corelib/../3rdparty/zlib/src -Isrc/corelib/../3rdparty -Isrc/corelib/../3rdparty/double-conversion/include -Isrc/corelib/.rcc -Imkspecs/win32-msvc -Isrc/3rdparty/pcre2/src -Isrc/xml/Xml_autogen/include -Iinclude/QtXml -Isrc/xml -Iinclude/QtXml/6.1.0 -Iinclude/QtXml/6.1.0/QtXml -Isrc/tools/bootstrap/.. -Isrc/tools/bootstrap/../../3rdparty/tinycbor/src -Isrc/tools/bootstrap/../../3rdparty/pcre2/src -Isrc/tools/bootstrap/../../3rdparty/zlib/src -g -DNDEBUG -O2 -fvisibility=hidden -fno-keep-inline-dllexport -Wall -Wextra -ffunction-sections -fdata-sections -std=gnu++17 -MD -MT src/tools/bootstrap/CMakeFiles/Bootstrap.dir/__/__/corelib/global/qmalloc.cpp.obj -MF src\tools\bootstrap\CMakeFiles\Bootstrap.dir\__\__\corelib\global\qmalloc.cpp.obj.d -o src/tools/bootstrap/CMakeFiles/Bootstrap.dir/__/__/corelib/global/qmalloc.cpp.obj -c src/corelib/global/qmalloc.cpp In file included from src/corelib/global/qmalloc.cpp:40: mkspecs/win32-msvc/qplatformdefs.h:138:13: error: conflicting declaration 'typedef int mode_t' typedef int mode_t; ^~~~~~ In file included from E:/PFiles/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/pthread.h:64, from E:/PFiles/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35, from E:/PFiles/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32/bits/gthr.h:148, from E:/PFiles/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ext/atomicity.h:35, from E:/PFiles/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:39, from E:/PFiles/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52, from E:/PFiles/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdexcept:39, from E:/PFiles/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:39, from E:/PFiles/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/tuple:39, from E:/repos/qt5/qtbase/src/corelib/tools/qcontainerfwd.h:46, from include/QtCore/qcontainerfwd.h:1, from E:/repos/qt5/qtbase/src/corelib/global/qtypeinfo.h:42, from include/QtCore/qtypeinfo.h:1, from E:/repos/qt5/qtbase/src/corelib/global/qglobal.h:1336, from include/QtCore/qglobal.h:1, from mkspecs/win32-msvc/qplatformdefs.h:51, from src/corelib/global/qmalloc.cpp:40: E:/PFiles/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/sys/types.h:77:17: note: previous declaration as 'typedef _mode_t mode_t' typedef _mode_t mode_t; ^~~~~~ [56/1791] Building CXX object src/3rdparty/harfbuzz-ng/CMakeFiles/BundledHarfbuzz.dir/src/hb-subset.cc.obj ninja: build stopped: subcommand failed. |
My mistake was that I included MinGW into the PATH. The correct script is:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 set "CMAKE_ROOT=E:\PFiles\cmake-3.19.1-win64-x64\bin" set "NINJA_ROOT=E:\PFiles\ninja-win" set "PERL_ROOT=E:\PFiles\Strawberry\perl\bin" set PATH=%CMAKE_ROOT%;%PATH% set PATH=%NINJA_ROOT%;%PATH% set PATH=%PERL_ROOT%;%PATH% set PATH=E:\PFiles\Python35;%PATH% rem Check if the tools are in PATH where perl.exe where python.exe where cmake.exe where ninja.exe set "MY_INSTALL_PATH=E:\Qt\Qt6.0.2\windows" set CL=/MP configure.bat -prefix %MY_INSTALL_PATH% -DQT_NO_EXCEPTIONS=1 -release -force-debug-info -platform win32-msvc -opengl es2 ^ -opensource -confirm-license -nomake tests -nomake examples ^ -skip qtgraphicaleffects cmake --build . --parallel |
Configure summary (now the compiler is win32-msvc):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | Building for: win32-msvc (x86_64, CPU features: sse sse2) Compiler: msvc 19.28.29910.0 Build options: Mode ................................... release (with debug info) Optimize release build for size ........ no Fully optimize release builds (-O3) .... no Building shared libraries .............. yes Using C standard ....................... C11 Using C++ standard ..................... C++17 Relocatable ............................ yes Using precompiled headers .............. yes Using LTCG ............................. no Target compiler supports: SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX .................................. AVX AVX2 AVX512 ............................... F ER CD PF DQ BW VL IFMA VBMI Other x86 ............................ AES F16C RDRAND SHA Sanitizers: Addresses ............................ no Threads .............................. no Memory ............................... no Fuzzer (instrumentation only) ........ no Undefined ............................ no Build parts ............................ libs tools App store compliance ................... no Qt modules and options: Qt Concurrent .......................... yes Qt D-Bus ............................... yes Qt D-Bus directly linked to libdbus .... no Qt Gui ................................. yes Qt Network ............................. yes Qt Sql ................................. yes Qt Testlib ............................. yes Qt Widgets ............................. yes Qt Xml ................................. yes Support enabled for: Using pkg-config ....................... no udev ................................... no Using system zlib ...................... no Zstandard support ...................... no Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... no ICU .................................... no Using system libb2 ..................... no Built-in copy of the MIME database ..... yes Tracing backend ........................ <none> Logging backends: journald ............................. no syslog ............................... no slog2 ................................ no PCRE2 .................................. yes Using system PCRE2 ................... no Qt Sql: SQL item models ........................ yes Qt Network: getifaddrs() ........................... no IPv6 ifname ............................ no libproxy ............................... no Schannel ............................... no OpenSSL ................................ yes Qt directly linked to OpenSSL ........ no OpenSSL 1.1 ............................ yes DTLS ................................... yes OCSP-stapling .......................... yes SCTP ................................... no Use system proxies ..................... yes GSSAPI ................................. no Brotli Decompression Support ........... no Qt Gui: Accessibility .......................... yes FreeType ............................... yes Using system FreeType ................ no HarfBuzz ............................... yes Using system HarfBuzz ................ no Fontconfig ............................. no Image formats: GIF .................................. yes ICO .................................. yes JPEG ................................. yes Using system libjpeg ............... no PNG .................................. yes Using system libpng ................ no Text formats: HtmlParser ........................... yes CssParser ............................ yes OdfWriter ............................ yes MarkdownReader ....................... yes Using system libmd4c ............... no MarkdownWriter ....................... yes EGL .................................... no OpenVG ................................. no OpenGL: Desktop OpenGL ....................... no Dynamic OpenGL ....................... yes OpenGL ES 2.0 ........................ no OpenGL ES 3.0 ........................ no OpenGL ES 3.1 ........................ no OpenGL ES 3.2 ........................ no Vulkan ................................. no Session Management ..................... yes Features used by QPA backends: evdev .................................. no libinput ............................... no INTEGRITY HID .......................... no mtdev .................................. no tslib .................................. no xkbcommon .............................. no X11 specific: XLib ................................. no XCB Xlib ............................. no EGL on X11 ........................... no xkbcommon-x11 ........................ no QPA backends: DirectFB ............................... no EGLFS .................................. no EGLFS details: EGLFS OpenWFD ........................ no EGLFS i.Mx6 .......................... no EGLFS i.Mx6 Wayland .................. no EGLFS RCAR ........................... no EGLFS EGLDevice ...................... no EGLFS GBM ............................ no EGLFS VSP2 ........................... no EGLFS Mali ......................-- Configuring done ..... no EGLFS Raspberry Pi ................... no EGLFS X11 ............................ no LinuxFB ................................ no VNC .................................... no QNX: lgmon ................................ no IMF .................................. no XCB: Using system-provided xcb-xinput ..... no Native painting (experimental) ....... no GL integrations: GLX Plugin ......................... no XCB GLX .......................... no EGL-X11 Plugin ..................... no Windows: Direct 2D ............................ yes Direct 2D 1.1 ........................ yes DirectWrite .......................... yes DirectWrite 3 ........................ yes Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows WindowsVista Qt Testlib: Tester for item models ................. yes Qt PrintSupport: CUPS ................................... no Qt Sql Drivers: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... yes PostgreSQL ............................. no SQLite ................................. yes Using system provided SQLite ......... no Qt is now configured for building. Just run 'cmake --build . --parallel' Once everything is built, you must run 'cmake --install .' |
It was a step to a right direction, but I got an error again:
1 2 3 4 5 6 7 8 | [1052/1801] Building CXX object src\testlib\CMakeFiles\Test.dir\qtestresult.cpp.obj FAILED: src/testlib/CMakeFiles/Test.dir/qtestresult.cpp.obj C:\PROGRA~2\MICROS~3\2019\COMMUN~1\VC\Tools\MSVC\1428~1.299\bin\Hostx64\x64\cl.exe /nologo /TP -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_TESTLIB_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x040800 -DQT_MOC_COMPAT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DATASTREAM -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS=1 -DQT_NO_FOREACH -DQT_USE_QSTRINGBUILDER -DTest_EXPORTS -DUNICODE -DWIN32 -DWIN64 -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_USE_MATH_DEFINES -D_WIN64 -D_WINDLL -Isrc\testlib\Test_autogen\include -Iinclude -Iinclude\QtTest -Isrc\testlib -Iinclude\QtTest\6.1.0 -Iinclude\QtTest\6.1.0\QtTest -Iinclude\QtCore -Imkspecs\win32-msvc -Isrc\corelib -Iinclude\QtCore\6.1.0 -Iinclude\QtCore\6.1.0\QtCore /DWIN32 /D_WINDOWS /GR /Zi /DNDEBUG -O2 -MD /W3 /EHsc -Zc:__cplusplus -permissive- -utf-8 -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:externConstexpr -Zc:wchar_t -guard:cf -std:c++17 /YuE:/repos/qt5/qtbase/src/testlib/CMakeFiles/Test.dir/cmake_pch.hxx /FpE:/repos/qt5/qtbase/src/testlib/CMakeFiles/Test.dir/./cmake_pch.cxx.pch /FIE:/repos/qt5/qtbase/src/testlib/CMakeFiles/Test.dir/cmake_pch.hxx /showIncludes /Fosrc\testlib\CMakeFiles\Test.dir\qtestresult.cpp.obj /Fdsrc\testlib\CMakeFiles\Test.dir\ /FS -c src\testlib\qtestresult.cpp src\testlib\qtestresult.cpp(77): error C3861: 'qTerminate': identifier not found [1055/1801] Linking CXX shared library bin\Qt6DBus.dll Creating library lib\Qt6DBus.lib and object lib\Qt6DBus.exp [1061/1801] Building CXX object src\gui\CMakeFiles\Gui.dir\cmake_pch.cxx.obj ninja: build stopped: subcommand failed. |
It is because I added -DQT_NO_EXCEPTIONS=1
, without it QT builds and installs the following libraries:
1 2 3 4 5 6 7 8 9 10 11 12 | Qt6Concurrent.dll Qt6Core.dll Qt6DBus.dll Qt6Gui.dll Qt6Network.dll Qt6OpenGL.dll Qt6OpenGLWidgets.dll Qt6PrintSupport.dll Qt6Sql.dll Qt6Test.dll Qt6Widgets.dll Qt6Xml.dll |
and I run a wrong configure.bat
file from qtbase
directory, but not from the root directory. My 4-th attempt was:
1 2 3 | configure.bat -prefix %MY_INSTALL_PATH% -release -force-debug-info -platform win32-msvc -opengl es2 ^ -opensource -confirm-license -nomake tests -nomake examples ^ -skip qtgraphicaleffects -skip qtwebsockets |
finally I built it, but without qtmultimedia and qtpurchasing.
Links:
- Qt for Windows – Building from Source
- qtgraphicaleffects is not part of 6.0
- Changes to Qt OpenGL (On Windows, ANGLE, a third-party OpenGL ES to Direct 3D translator, is no longer included in Qt 6)
- QtMultimedia was planned to come back in 6.2
- BUG: QT 6.1.0 does not compile with -DQT_NO_EXCEPTIONS=1
- What is the status of qtmultimedia and qtpurchasing in QT 6.1.0?
set “MY_INSTALL_PATH=E:\Qt\Qt6.2\android”
set QT_HOST_PATH=E:\Qt\Qt6.2\windows
configure.bat -prefix %MY_INSTALL_PATH% -qt-host-path %QT_HOST_PATH% -DQT_NO_EXCEPTIONS=1 -debug-and-release -force-debug-info -platform win32-g++ -opengl es2 -xplatform android-clang ^
-android-ndk %ANDROID_NDK_PATH% -android-sdk %ANDROID_SDK_ROOT% -android-abis arm64-v8a ^
-opensource -confirm-license