Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qt 5.15.8 WinRT build issue
Forum Updated to NodeBB v4.3 + New Features

Qt 5.15.8 WinRT build issue

Scheduled Pinned Locked Moved Solved General and Desktop
3 Posts 1 Posters 409 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Cobra91151C Offline
    Cobra91151C Offline
    Cobra91151
    wrote on last edited by Cobra91151
    #1

    Hello!

    I want to build Qt 5.15.8 for WinRT. I use the following command: C:\QtBuild\qt-everywhere-src-5.15.8\qtbase\configure.bat -top-level -debug -xplatform "winrt-x86-msvc2019" -confirm-license -mp -opensource -nomake examples -no-ltcg -skip qtwebengine -prefix "C:\Qt\5.15.8\winrt_x86_msvc2019"

    CMD output:

    Running configuration tests...
    Checking for valid makespec... yes
    Checking for target architecture... i386
    Checking for host architecture... i386
    Checking for SSE2 instructions... yes
    Checking for AES new instructions... yes
    Checking for alloca() in alloca.h... no
    Checking for alloca() in malloc.h... yes
    Checking for SSE3 instructions... yes
    Checking for SSSE3 instructions... yes
    Checking for SSE4.1 instructions... yes
    Checking for SSE4.2 instructions... yes
    Checking for AVX instructions... yes
    Checking for AVX2 instructions... yes
    Checking for AVX512 F instructions... yes
    Checking for AVX512 BW instructions... yes
    Checking for AVX512 CD instructions... yes
    Checking for AVX512 DQ instructions... yes
    Checking for AVX512 ER instructions... yes
    Checking for AVX512 IFMA instructions... yes
    Checking for AVX512 PF instructions... yes
    Checking for AVX512 VBMI instructions... yes
    Checking for AVX512 VL instructions... yes
    Checking for C++14 support... yes
    Checking for C++17 support... yes
    Checking for C99 support... no
    Checking for F16C instructions... yes
    Checking for D-Bus >= 1.2 (host)... yes
    Checking for IncrediBuild... no
    Checking for Support for Intel Control-flow Enforcement Technology... no
    Checking for udev... no
    Checking for POSIX fallocate()... no
    Checking for precompiled header support... yes
    Checking for RDRAND instruction... yes
    Checking for RDSEED instruction... yes
    Checking for SHA new instructions... yes
    Checking for Signaling NaN for doubles... yes
    Checking for STL compatibility... yes
    Checking for zlib... no
    Checking for Intrinsics without -mXXX argument... yes
    Checking for Zstandard... no
    Checking for C++11 <future>... no
    Checking for eventfd... no
    Checking for inotify... no
    Checking for PCRE2... no
    Checking for slog2... no
    Checking for 64 bit atomics... yes
    Checking for DoubleConversion... no
    Checking for O_CLOEXEC... no
    Checking for advapi32... yes
    Checking for gdi32... yes
    Checking for kernel32... yes
    Checking for netapi32... yes
    Checking for ole32... yes
    Checking for shell32... yes
    Checking for uuid... yes
    Checking for user32... yes
    Checking for winmm... yes
    Checking for ws2_32... yes
    Checking for C++11 <random>... yes
    Checking for working std::atomic for function pointers... yes
    Checking for getifaddrs()... no
    Checking for IPv6 ifname... no
    Checking for Network List Manager... no
    Checking for XCB >= 1.11... no
    Checking for DirectX GUID... yes
    Checking for Direct3D Shader Compiler... C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x86/fxc.exe
    Checking for DirectX GI... yes
    Checking for Direct3D 11... yes
    Checking for Direct3D Shader Compiler Library... yes
    Checking for D3D11_QUERY_DATA_TIMESTAMP_DISJOINT... yes
    Checking for DirectX GI 1.2... yes
    Checking for Direct3D 11.1... yes
    Checking for DirectWrite... yes
    Checking for DirectWrite 1... yes
    Checking for DirectWrite 2... yes
    Checking for KMS... no
    Checking for EGL... no
    Checking for evdev... no
    Checking for GBM... no
    Checking for LinuxFB... no
    Checking for mtdev... no
    Checking for OpenVG... no
    Checking for default QPA platform... winrt
    Checking for libjpeg... no
    Checking for libmd4c... no
    Checking for tslib... no
    Checking for Vulkan... no
    Checking for XLib... no
    Checking for xkbcommon >= 0.5.0... no
    Checking for CUPS... no
    Checking for DB2 (IBM)... no
    Checking for InterBase... no
    Checking for MySQL... no
    Checking for OCI (Oracle)... no
    Checking for ODBC... no
    Checking for PostgreSQL... no
    Checking for SQLite (version 2)... no
    Checking for TDS (Sybase)... no
    Checking for 32bit pointers... yes
    Checking for python... C:\Python27\python.exe
    Checking for Direct3D 12... yes
    Checking for Assimp... no
    Checking for SDL2... no
    Checking for Assimp... no
    Checking for Autodesk FBX... no
    Checking for Wayland EGL library... no
    Checking for BlueZ... no
    Checking for WinRT Bluetooth API... yes
    Checking for WinRT extended bluetooth low energy API... yes
    Checking for sensorfw... no
    Checking for Gypsy... no
    Checking for WinRT Geolocation API... yes
    Checking for DirectShow... yes
    Checking for evr.h... yes
    Checking for Vivante GPU... no
    Checking for GStreamer 1.0... no
    Checking for GStreamer 0.10... no
    Checking for OpenAL... no
    Checking for libresourceqt5... no
    Checking for Windows Audio Services... no
    Checking for WMF... yes
    Checking for wmsdk.h... yes
    Checking for WShellItem... no
    Checking for Flite... no
    Checking for libclang... yes
    Done running configuration tests.
    
    Configure summary:
    
    Building on: win32-msvc (i386, CPU features: sse sse2)
    Building for: winrt-x86-msvc2019 (i386, CPU features: sse sse2)
    Target compiler: msvc 192930147
    Configuration: cross_compile sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples f16c msvc_mp precompile_header rdrnd rdseed shani x86SimdAlways shared shared debug c++11 c++14 c++17 c++1z concurrent no-pkg-config release_tools stl
    Build options:
      Mode ................................... debug; optimized tools
      Building shared libraries .............. yes
      Using C standard ....................... C89
      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
      Build parts ............................ libs
      App store compliance ................... yes
    Qt modules and options:
      Qt Concurrent .......................... yes
      Qt D-Bus ............................... no
      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
      iconv .................................. no
      ICU .................................... 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 Network:
      getifaddrs() ........................... no
      IPv6 ifname ............................ no
      libproxy ............................... no
      OpenSSL ................................ no
        Qt directly linked to OpenSSL ........ no
      OpenSSL 1.1 ............................ no
      DTLS ................................... no
      OCSP-stapling .......................... no
      SCTP ................................... no
      Use system proxies ..................... yes
      GSSAPI ................................. 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 .................................... yes
      OpenVG ................................. no
      OpenGL:
        ANGLE ................................ yes
        Combined ANGLE Library ............... no
        Desktop OpenGL ....................... no
        Dynamic OpenGL ....................... no
        OpenGL ES 2.0 ........................ yes
        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
      LinuxFB ................................ no
      VNC .................................... no
      Windows:
        Direct 2D ............................ no
        DirectWrite .......................... yes
        DirectWrite 2 ........................ yes
    Qt Sql:
      SQL item models ........................ yes
    Qt Widgets:
      GTK+ ................................... no
      Styles ................................. Fusion Windows
    Qt PrintSupport:
      CUPS ................................... no
    Qt Sql Drivers:
      DB2 (IBM) .............................. no
      InterBase .............................. no
      MySql .................................. no
      OCI (Oracle) ........................... no
      ODBC ................................... no
      PostgreSQL ............................. no
      SQLite2 ................................ no
      SQLite ................................. yes
        Using system provided SQLite ......... no
      TDS (Sybase) ........................... no
    Qt Testlib:
      Tester for item models ................. yes
    Qt SerialBus:
      Socket CAN ............................. no
      Socket CAN FD .......................... no
      SerialPort Support ..................... no
    Further Image Formats:
      JasPer ................................. no
      MNG .................................... no
      TIFF ................................... no
        Using system libtiff ................. no
      WEBP ................................... yes
        Using system libwebp ................. no
    Qt QML:
      QML network support .................... yes
      QML debugging and profiling support .... yes
      QML just-in-time compiler .............. yes
      QML sequence object .................... yes
      QML XML http request ................... yes
      QML Locale ............................. yes
    Qt QML Models:
      QML list model ......................... yes
      QML delegate model ..................... yes
    Qt Quick:
      Direct3D 12 ............................ yes
      AnimatedImage item ..................... yes
      Canvas item ............................ yes
      Support for Qt Quick Designer .......... yes
      Flipable item .......................... yes
      GridView item .......................... yes
      ListView item .......................... yes
      TableView item ......................... yes
      Path support ........................... yes
      PathView item .......................... yes
      Positioner items ....................... yes
      Repeater item .......................... yes
      ShaderEffect item ...................... yes
      Sprite item ............................ yes
    QtQuick3D:
      Assimp ................................. yes
      System Assimp .......................... no
    Qt Scxml:
      ECMAScript data model for QtScxml ...... yes
    Qt Gamepad:
      SDL2 ................................... no
    Qt 3D:
      Assimp ................................. yes
      System Assimp .......................... no
      Output Qt3D GL traces .................. no
      Use SSE2 instructions .................. no
      Use AVX2 instructions .................. no
      Aspects:
        Render aspect ........................ yes
        Input aspect ......................... yes
        Logic aspect ......................... yes
        Animation aspect ..................... yes
        Extras aspect ........................ yes
    Qt 3D Renderers:
      OpenGL Renderer ........................ yes
      RHI Renderer ........................... no
    Qt 3D GeometryLoaders:
      Autodesk FBX ........................... no
    Qt Wayland Client ........................ no
    Qt Wayland Compositor .................... no
    Qt Bluetooth:
      BlueZ .................................. no
      BlueZ Low Energy ....................... no
      Linux Crypto API ....................... no
      Native Win32 Bluetooth ................. no
      WinRT Bluetooth API (desktop & UWP) .... yes
      WinRT advanced bluetooth low energy API (desktop & UWP) . yes
    Qt Sensors:
      sensorfw ............................... no
    Qt Quick Controls 2:
      Styles ................................. Default Fusion Imagine Material Universal
    Qt Quick Templates 2:
      Hover support .......................... yes
      Multi-touch support .................... yes
    Qt Positioning:
      Gypsy GPS Daemon ....................... no
      WinRT Geolocation API .................. yes
    Qt Location:
      Qt.labs.location experimental QML plugin . no
      Geoservice plugins:
        OpenStreetMap ........................ yes
        HERE ................................. yes
        Esri ................................. yes
        Mapbox ............................... yes
        MapboxGL ............................. no
        Itemsoverlay ......................... yes
    QtXmlPatterns:
      XML schema support ..................... yes
    Qt Multimedia:
      ALSA ................................... no
      GStreamer 1.0 .......................... no
      GStreamer 0.10 ......................... no
      Video for Linux ........................ no
      OpenAL ................................. no
      PulseAudio ............................. no
      Resource Policy (libresourceqt5) ....... no
      Windows Audio Services ................. no
      DirectShow ............................. yes
      Windows Media Foundation ............... yes
    Qt TextToSpeech:
      Flite .................................. no
      Flite with ALSA ........................ no
      Speech Dispatcher ...................... no
    Qt Tools:
      Qt Assistant ........................... yes
      Qt Designer ............................ yes
      Qt Distance Field Generator ............ yes
      kmap2qmap .............................. yes
      Qt Linguist ............................ yes
      Mac Deployment Tool .................... no
      makeqpf ................................ yes
      pixeltool .............................. yes
      qdbus .................................. yes
      qev .................................... yes
      Qt Attributions Scanner ................ yes
      qtdiag ................................. yes
      qtpaths ................................ yes
      qtplugininfo ........................... yes
      Windows deployment tool ................ yes
      WinRT Runner Tool ...................... yes
    Qt Tools:
      QDoc ................................... yes
    
    Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.
    
    Note: The following modules are not being compiled in this configuration:
        serialport
    
    Qt is now configured for building. Just run 'jom'.
    Once everything is built, you must run 'jom install'.
    Qt will be installed into 'C:\Qt\5.15.8\winrt_x86_msvc2019'.
    
    Prior to reconfiguration, make sure you remove any leftovers from
    the previous build.
    
    
    C:\QtBuild\qt-everywhere-src-5.15.8\qtBuild>
    

    The problem is with qlowenergycontroller_winrt_new.cpp file - 439 line.

    qbluetoothsocket_winrt.cpp
    qbluetoothutils_winrt.cpp
    qlowenergycontroller_winrt.cpp
    qlowenergycontroller_winrt_new.cpp
    C:\QtBuild\qt-everywhere-src-5.15.8\qtconnectivity\src\bluetooth\qlowenergycontroller_winrt_new.cpp(439): error C3861: 'CoInitialize': identifier not found
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX86\x86\cl.EXE"' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX86\x86\nmake.exe"' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: 'cd' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: 'cd' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: 'cd' : return code '0x2'
    Stop.
    

    qlowenergycontroller_winrt_new.cpp

    void QWinRTLowEnergyConnectionHandler::connectToDevice()
    {
        qCDebug(QT_BT_WINRT) << __FUNCTION__;
        mInitialized = CoInitialize(NULL); //439 line which leads to this error
        qCDebug(QT_BT_WINRT) << qt_error_string(mInitialized);
    
        auto earlyExit = [this]() { return mAbortConnection; };
        ComPtr<IBluetoothLEDeviceStatics> deviceStatics;
        HRESULT hr = GetActivationFactory(
                HString::MakeReference(RuntimeClass_Windows_Devices_Bluetooth_BluetoothLEDevice).Get(),
                &deviceStatics);
        EMIT_WORKER_ERROR_AND_QUIT_IF_FAILED_2(hr, "Could not obtain device factory");
        ComPtr<IAsyncOperation<BluetoothLEDevice *>> deviceFromIdOperation;
        hr = deviceStatics->FromBluetoothAddressAsync(mAddress.toUInt64(), &deviceFromIdOperation);
        EMIT_WORKER_ERROR_AND_QUIT_IF_FAILED_2(hr, "Could not find LE device from address");
        hr = QWinRTFunctions::await(deviceFromIdOperation, mDevice.GetAddressOf(),
                                    QWinRTFunctions::ProcessMainThreadEvents, 5000, earlyExit);
        if (FAILED(hr) || !mDevice) {
            emitErrorAndQuitThread("Could not find LE device");
            return;
        }
    
        // get GattSession: 1. get device id
        ComPtr<IBluetoothLEDevice4> device4;
        hr = mDevice.As(&device4);
        EMIT_WORKER_ERROR_AND_QUIT_IF_FAILED_2(hr, "Could not cast device");
    
        ComPtr<IBluetoothDeviceId> deviceId;
        hr = device4->get_BluetoothDeviceId(&deviceId);
        EMIT_WORKER_ERROR_AND_QUIT_IF_FAILED_2(hr, "Could not get bluetooth device id");
    
        // get GattSession: 2. get session statics
        ComPtr<IGattSessionStatics> sessionStatics;
        hr = GetActivationFactory(
                HString::MakeReference(
                        RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSession)
                        .Get(),
                &sessionStatics);
        EMIT_WORKER_ERROR_AND_QUIT_IF_FAILED_2(hr, "Could not obtain GattSession statics");
    
        // get GattSession: 3. get session
        ComPtr<IAsyncOperation<GattSession *>> gattSessionFromIdOperation;
        hr = sessionStatics->FromDeviceIdAsync(deviceId.Get(), &gattSessionFromIdOperation);
        EMIT_WORKER_ERROR_AND_QUIT_IF_FAILED_2(hr, "Could not get GattSession from id");
        hr = QWinRTFunctions::await(gattSessionFromIdOperation, mGattSession.GetAddressOf(),
                                    QWinRTFunctions::ProcessMainThreadEvents, 5000, earlyExit);
        EMIT_WORKER_ERROR_AND_QUIT_IF_FAILED_2(hr, "Could not complete Gatt session acquire");
    
        BluetoothConnectionStatus status;
        hr = mDevice->get_ConnectionStatus(&status);
        EMIT_WORKER_ERROR_AND_QUIT_IF_FAILED_2(hr, "Could not obtain device's connection status");
        if (status == BluetoothConnectionStatus::BluetoothConnectionStatus_Connected) {
            emitConnectedAndQuitThread();
            return;
        }
    
        QBluetoothLocalDevice localDevice;
        QBluetoothLocalDevice::Pairing pairing = localDevice.pairingStatus(mAddress);
        if (pairing == QBluetoothLocalDevice::Unpaired)
            connectToUnpairedDevice();
        else
            connectToPairedDevice();
    }
    

    I have tried to add #include <objbase.h> to qlowenergycontroller_winrt_new.cpp but it still leads to this error. Any ideas how to fix it? Thank you.

    1 Reply Last reply
    0
    • Cobra91151C Offline
      Cobra91151C Offline
      Cobra91151
      wrote on last edited by
      #3

      Hello!

      So, by applying CLASSIC_APP_BUILD checks for CoInitialize call:

      #ifdef CLASSIC_APP_BUILD
          qCDebug(QT_BT_WINRT) << __FUNCTION__;
          mInitialized = CoInitialize(NULL);
          qCDebug(QT_BT_WINRT) << qt_error_string(mInitialized);
      #endif
      

      It compiles successfully. I think, the issue is resolved. Thank you.

      1 Reply Last reply
      0
      • Cobra91151C Offline
        Cobra91151C Offline
        Cobra91151
        wrote on last edited by
        #2

        I reported this issue here: https://bugreports.qt.io/browse/QTBUG-110399

        1 Reply Last reply
        0
        • Cobra91151C Offline
          Cobra91151C Offline
          Cobra91151
          wrote on last edited by
          #3

          Hello!

          So, by applying CLASSIC_APP_BUILD checks for CoInitialize call:

          #ifdef CLASSIC_APP_BUILD
              qCDebug(QT_BT_WINRT) << __FUNCTION__;
              mInitialized = CoInitialize(NULL);
              qCDebug(QT_BT_WINRT) << qt_error_string(mInitialized);
          #endif
          

          It compiles successfully. I think, the issue is resolved. Thank you.

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved