Веб-сборка QT Creator: ошибка при анализе файла Test.pro. Сдаваться
Я пытаюсь окунуться в Qt WebAssembly в Windows 10, поэтому выполнил необходимую настройку в соответствии с инструкциями Qt для WebAssembly . Теперь у меня установлено следующее:
- Qt: 6.5.2
- Создатель Qt: 11.0
- эмсдк: 3.1.25
В настройках Qt Creator > Устройства > WebAssembly я вижу следующее:
Adding directories to PATH:
C:\dev\emsdk-3.1.44\node\16.20.0_64bit\bin
C:\dev\emsdk-3.1.44\upstream\emscripten
C:\dev\emsdk-3.1.44
C:\dev\emsdk-3.1.44\python\3.9.2-nuget_64bit
Setting environment variables:
EMSDK=C:/dev/emsdk-3.1.44
EMSDK_NODE=C:\dev\emsdk-3.1.44\node\16.20.0_64bit\bin\node.exe
EMSDK_PYTHON=C:\dev\emsdk-3.1.44\python\3.9.2-nuget_64bit\python.exe
JAVA_HOME=C:\dev\emsdk-3.1.44\java\8.152_64bit
Судя по тому, что я вижу, все должно быть в порядке (примечание: я скачал последнюю версию emsdk с GitHub и использовал ее для установки 3.1.25), и активированная версия отображается как 3.1.25.
Зайдя в «Настройки» > «Наборы» > «Наборы», я вижу компилятор C и C++.Emscripten Compiler 3.1.25 for C/C++
что также выглядит правильным, исходя из всего, что мне удалось предположить.
На этом этапе я создаю новыйQt Widgets Application
проект под названием Test и укажите ему использоватьDesktop Qt 6.5.2 MinGW 64-bit
и комплекты. Не внося изменений в то, что создается Qt Creator, я могу запустить проект как настольное приложение и увидеть на экране пустое окно. Однако, когда я переключаюсь на WebAssembly, меня встречает ошибка.
<path>\Test\Test.pro:-1: error: Error while parsing file <path>\Test\Test.pro. Giving up.
В проекте указан только файл Test.pro и ничего больше (на рабочем столе я вижу все файлы h, cpp и ui). Если я попытаюсь скомпилировать проект, все, что я получу, это следующую ошибку:
Error while building/deploying project Test (kit: WebAssembly Qt 6.5.2 (multi-threaded))
When executing step "Make"
Я не трогал ни один из сгенерированных файлов (h, cpp, ui, pro) и совершенно не понимаю, что происходит. Мой Test.pro выглядит следующим образом:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++17
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
Обновлять
Наконец-то дошли руки докопаться до этого, и оказалось, что это связано сWebAssembly Qt 6.5.2 (multi-threaded)
. Если я используюWebAssembly Qt 6.5.2 (single-threaded)
тогда все работает как положено...