Problems with Open-Source Downloads read https://www.qt.io/blog/problem-with-open-source-downloads and https://forum.qt.io/post/638946

Webassembly 5.15.0 Win10 won't compile



  • I want test building webassembley on my win10 desktop.

    • Installed MinGW and sed
    • Installed 5.15.0 binaries with Maintenance tool no build from source required
    • Acitvated the webassembly Plugin 4.14.0
    • Installed emsdk version 1.39.7 , activatedd and run the emsdk_env.bat
    • copied .emscripten to my user folder adjusted the path
    import os
    emsdk_path = "c:\\Qt\\emsdk" #os.path.dirname(os.environ.get('EM_CONFIG')).replace('\\', '/')
    NODE_JS = emsdk_path + '\\node\\12.18.1_64bit\\bin\\node.exe'
    PYTHON = emsdk_path + '\\python\\3.7.4-pywin32_64bit\\python.exe'
    JAVA = emsdk_path + '\\java\\8.152_64bit\\bin\\java.exe'
    LLVM_ROOT = emsdk_path + '\\upstream\\bin'
    BINARYEN_ROOT = emsdk_path + '\\upstream'
    EMSCRIPTEN_ROOT = emsdk_path + '\\upstream\\emscripten'
    TEMP_DIR = 'c:\\temp'
    COMPILER_ENGINE = NODE_JS
    JS_ENGINES = [NODE_JS]
    

    QtCreator kit settings

    e5a15332-cf37-43c5-90b6-a2d1ca66597b-image.png

    Compiler I added manual because was not recognized by QtCreator
    6c63bdc4-c154-4ce4-bef1-fdc8ffa51b26-image.png

    I just created an simple QWidget Project, no modifications. Project name: WebApp

    11:44:25: Führe Schritte für Projekt WebApp aus...
    11:44:25: Starte: "C:\SysGCC\MinGW64\bin\mingw32-make.exe" clean -j8
    del moc_predefs.h
    del moc_mainwindow.cpp
    del ui_mainwindow.h
    D:\_Development\_c++\Qt_Develope\build-WebApp-Qt_5_15_0_WebAssembly-Release\moc_mainwindow.cpp konnte nicht gefunden werden
    del main.obj mainwindow.obj webapp.js_plugin_import.obj moc_mainwindow.obj
    del *~ core *.core
    D:\_Development\_c++\Qt_Develope\build-WebApp-Qt_5_15_0_WebAssembly-Release\*~ konnte nicht gefunden werden
    11:44:26: Der Prozess "C:\SysGCC\MinGW64\bin\mingw32-make.exe" wurde normal beendet.
    11:44:26: Starte: "C:\Qt\5.15.0\wasm_32\bin\qmake.exe" D:\_Development\_c++\Qt_Develope\WebApp\WebApp.pro -spec wasm-emscripten "CONFIG+=qtquickcompiler"
    11:44:27: Der Prozess "C:\Qt\5.15.0\wasm_32\bin\qmake.exe" wurde normal beendet.
    11:44:27: Starte: "C:\SysGCC\MinGW64\bin\mingw32-make.exe" -f D:/_Development/_c++/Qt_Develope/build-WebApp-Qt_5_15_0_WebAssembly-Release/Makefile qmake_all
    mingw32-make: Nothing to be done for `qmake_all'.
    11:44:28: Der Prozess "C:\SysGCC\MinGW64\bin\mingw32-make.exe" wurde normal beendet.
    11:44:28: Starte: "C:\SysGCC\MinGW64\bin\mingw32-make.exe" -j8
    C:\Qt\5.15.0\wasm_32\bin\uic.exe ..\WebApp\mainwindow.ui -o ui_mainwindow.h
    em++ -c -O2 -std=gnu++11 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\WebApp -I. -IC:\Qt\5.15.0\wasm_32\include -IC:\Qt\5.15.0\wasm_32\include\QtWidgets -IC:\Qt\5.15.0\wasm_32\include\QtGui -IC:\Qt\5.15.0\wasm_32\include\QtCore -I. -I. -I/.emscripten_ports/openssl/include -IC:\Qt\5.15.0\wasm_32\mkspecs\wasm-emscripten -o main.obj ..\WebApp\main.cpp
    em++ -c -O2 -std=gnu++11 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\WebApp -I. -IC:\Qt\5.15.0\wasm_32\include -IC:\Qt\5.15.0\wasm_32\include\QtWidgets -IC:\Qt\5.15.0\wasm_32\include\QtGui -IC:\Qt\5.15.0\wasm_32\include\QtCore -I. -I. -I/.emscripten_ports/openssl/include -IC:\Qt\5.15.0\wasm_32\mkspecs\wasm-emscripten -o mainwindow.obj ..\WebApp\mainwindow.cpp
    em++ -c -O2 -std=gnu++11 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\WebApp -I. -IC:\Qt\5.15.0\wasm_32\include -IC:\Qt\5.15.0\wasm_32\include\QtWidgets -IC:\Qt\5.15.0\wasm_32\include\QtGui -IC:\Qt\5.15.0\wasm_32\include\QtCore -I. -I. -I/.emscripten_ports/openssl/include -IC:\Qt\5.15.0\wasm_32\mkspecs\wasm-emscripten -o webapp.js_plugin_import.obj D:/_Development/_c++/Qt_Develope/build-WebApp-Qt_5_15_0_WebAssembly-Release/webapp.js_plugin_import.cpp
    em++ -O2 -std=gnu++11 -s ALLOW_MEMORY_GROWTH=1 -Wall -Wextra -dM -E -o moc_predefs.h C:\Qt\5.15.0\wasm_32\mkspecs\features\data\dummy.cpp
    C:\Qt\5.15.0\wasm_32\bin\qmake.exe -install sed -e s/@APPNAME@/WebApp/g C:/Qt/5.15.0/wasm_32/plugins/platforms/wasm_shell.html > D:/_Development/_c++/Qt_Develope/build-WebApp-Qt_5_15_0_WebAssembly-Release/WebApp.html
    ********copy /y C:\Qt\5.15.0\wasm_32\plugins\platforms\qtloader.js D:\_Development\_c++\Qt_Develope\build-WebApp-Qt_5_15_0_WebAssembly-Release
    copy /y C:\Qt\5.15.0\wasm_32\plugins\platforms\qtlogo.svg D:\_Development\_c++\Qt_Develope\build-WebApp-Qt_5_15_0_WebAssembly-Release
    Syntaxfehler.
    mingw32-make: *** [appjs] Error 1
    mingw32-make: *** Waiting for unfinished jobs....********
    Syntaxfehler.
    mingw32-make: *** [appsvg] Error 1
    In file included from ..\WebApp\main.cpp:1:
    In file included from ..\WebApp/mainwindow.h:4:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets\QMainWindow:1:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets/qmainwindow.h:44:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets/qwidget.h:45:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qobject.h:47:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qstring.h:50:
    C:\Qt\5.15.0\wasm_32\include\QtCore/qbytearray.h:600:22: warning: definition of implicit copy constructor for 'QByteRef' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy]
        inline QByteRef &operator=(const QByteRef &c)
                         ^
    C:\Qt\5.15.0\wasm_32\include\QtCore/qbytearray.h:619:38: note: in implicit copy constructor for 'QByteRef' first required here
    { Q_ASSERT(i >= 0); detach(); return QByteRef(*this, i); }
                                         ^
    In file included from ..\WebApp\mainwindow.cpp:1:
    In file included from ..\WebApp/mainwindow.h:4:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets\QMainWindow:1:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets/qmainwindow.h:44:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets/qwidget.h:45:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qobject.h:47:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qstring.h:50:
    C:\Qt\5.15.0\wasm_32\include\QtCore/qbytearray.h:600:22: warning: definition of implicit copy constructor for 'QByteRef' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy]
        inline QByteRef &operator=(const QByteRef &c)
                         ^
    C:\Qt\5.15.0\wasm_32\include\QtCore/qbytearray.h:619:38: note: in implicit copy constructor for 'QByteRef' first required here
    { Q_ASSERT(i >= 0); detach(); return QByteRef(*this, i); }
                                         ^
    In file included from D:/_Development/_c++/Qt_Develope/build-WebApp-Qt_5_15_0_WebAssembly-Release/webapp.js_plugin_import.cpp:3:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore\QtPlugin:1:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qplugin.h:44:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qobject.h:47:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qstring.h:50:
    C:\Qt\5.15.0\wasm_32\include\QtCore/qbytearray.h:600:22: warning: definition of implicit copy constructor for 'QByteRef' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy]
        inline QByteRef &operator=(const QByteRef &c)
                         ^
    C:\Qt\5.15.0\wasm_32\include\QtCore/qbytearray.h:619:38: note: in implicit copy constructor for 'QByteRef' first required here
    { Q_ASSERT(i >= 0); detach(); return QByteRef(*this, i); }
                                         ^
    In file included from ..\WebApp\main.cpp:1:
    In file included from ..\WebApp/mainwindow.h:4:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets\QMainWindow:1:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets/qmainwindow.h:44:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets/qwidget.h:45:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qobject.h:47:
    C:\Qt\5.15.0\wasm_32\include\QtCore/qstring.h:1229:22: warning: definition of implicit copy constructor for 'QCharRef' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy]
        inline QCharRef &operator=(const QCharRef &c) { return operator=(QChar(c)); }
                         ^
    C:\Qt\5.15.0\wasm_32\include\QtCore/qstring.h:1329:38: note: in implicit copy constructor for 'QCharRef' first required here
    { Q_ASSERT(i >= 0); detach(); return QCharRef(*this, i); }
                                         ^
    In file included from ..\WebApp\mainwindow.cpp:1:
    In file included from ..\WebApp/mainwindow.h:4:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets\QMainWindow:1:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets/qmainwindow.h:44:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtWidgets/qwidget.h:45:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qobject.h:47:
    C:\Qt\5.15.0\wasm_32\include\QtCore/qstring.h:1229:22: warning: definition of implicit copy constructor for 'QCharRef' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy]
        inline QCharRef &operator=(const QCharRef &c) { return operator=(QChar(c)); }
                         ^
    C:\Qt\5.15.0\wasm_32\include\QtCore/qstring.h:1329:38: note: in implicit copy constructor for 'QCharRef' first required here
    { Q_ASSERT(i >= 0); detach(); return QCharRef(*this, i); }
                                         ^
    In file included from D:/_Development/_c++/Qt_Develope/build-WebApp-Qt_5_15_0_WebAssembly-Release/webapp.js_plugin_import.cpp:3:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore\QtPlugin:1:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qplugin.h:44:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qobject.h:47:
    C:\Qt\5.15.0\wasm_32\include\QtCore/qstring.h:1229:22: warning: definition of implicit copy constructor for 'QCharRef' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy]
        inline QCharRef &operator=(const QCharRef &c) { return operator=(QChar(c)); }
                         ^
    C:\Qt\5.15.0\wasm_32\include\QtCore/qstring.h:1329:38: note: in implicit copy constructor for 'QCharRef' first required here
    { Q_ASSERT(i >= 0); detach(); return QCharRef(*this, i); }
                                         ^
    In file included from D:/_Development/_c++/Qt_Develope/build-WebApp-Qt_5_15_0_WebAssembly-Release/webapp.js_plugin_import.cpp:3:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore\QtPlugin:1:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qplugin.h:46:
    In file included from C:\Qt\5.15.0\wasm_32\include\QtCore/qjsonobject.h:43:
    C:\Qt\5.15.0\wasm_32\include\QtCore/qjsonvalue.h:168:20: warning: definition of implicit copy constructor for 'QJsonValueRef' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy]
        QJsonValueRef &operator = (const QJsonValueRef &val);
                       ^
    C:\Qt\5.15.0\wasm_32\include\QtCore/qjsonobject.h:142:53: note: in implicit copy constructor for 'QJsonValueRef' first required here
            inline QJsonValueRef value() const { return QJsonValueRef(o, i); }
                                                        ^
    3 warnings generated.
    2 warnings generated.
    2 warnings generated.
    11:44:33: Der Prozess "C:\SysGCC\MinGW64\bin\mingw32-make.exe" wurde mit dem Rückgabewert 2 beendet.
    Fehler beim Erstellen/Deployment des Projekts WebApp (Kit: Qt 5.15.0 WebAssembly)
    Bei der Ausführung von Schritt "Make"
    11:44:33: Verstrichene Zeit: 00:08.
    
    

    I think the prolbem is here
    copy /y C:\Qt\5.15.0\wasm_32\plugins\platforms\qtloader.js D:_Development_c++\Qt_Develope\build-WebApp-Qt_5_15_0_WebAssembly-Release
    copy /y C:\Qt\5.15.0\wasm_32\plugins\platforms\qtlogo.svg D:_Development_c++\Qt_Develope\build-WebApp-Qt_5_15_0_WebAssembly-Release
    Syntaxfehler.
    mingw32-make: *** [appjs] Error 1
    mingw32-make: *** Waiting for unfinished jobs....

    It seems the copy of the 2 files is not working. I checked source and target folder, full access allowed.

    I found nothing in the web, and I spend serveral days without any solution.

    Help is appreciated!
    Thanks!



  • Can you try 5.15.1 or 5.15.2, as there was a bug on windows that stopped those files from being copied.


Log in to reply