【发布时间】:2020-03-17 02:42:23
【问题描述】:
我想为我的科学程序测试 QT WebAssembly。 因此,我安装了 emscripten。
$em++ --version
返回
emcc (Emscripten gcc/clang-like replacement) 1.38.30 (commit a5082b232617c762cb65832429f896c838df2483)...
然后我使用 Qt WebInstaller 安装了 Qt。
在我的安装目录中,我有一个 wasm_32 文件夹,其中包含 bin 和 qmake:
$ ~/Qt_web/5.13.2/wasm_32/bin/qmake --version
返回
QMake version 3.1
Using Qt version 5.13.2 in /home/myName/Qt_web/5.13.2/wasm_32/lib
但是,当我启动 Qt creator 时,单击 Projects 我看到一个名为:Qt 5.13.2 WebAssembly 的工具包,但我无法选择它(它是灰色的)。
当我单击管理工具包时,我看到没有为 Qt 5.13.2.WebAssembly 选择 C 和 C++ 编译器。
当我更改为 Qt Versions 时,我也会收到警告。警告说:
ABI detection failed: Make sure to use a matching compiler when building. No qmlscene installed.
问题:
我真的不明白emscripten 与这一切有什么关系。 emscripten 是编译器吗?如果是,它是否应该由Qt 5.13.2 WebAssembly 套件自动选择?
合适的Qt WebAssembly 套件是什么样的?
如果我选择 gcc 作为我的编译器,我会收到一条错误消息:
/home/myName/Qt_web/5.13.2/wasm_32/plugins/platforms/libqwasm.a:-1: error: error adding symbols: File format not recognized
编辑:
当我打开 qt 维护工具并查看已安装的软件包时,我得到以下信息:
EDIT2:
更改为 Qt Creator 4.11.0-beta2 (4.10.83) 后,我能够关注 this 描述的部分内容。我能够选择插件,但我仍然无法更改设备类型。
EDIT3:
似乎我的 emscripten 编译器有一些问题。 编译器是否位于:
emscripten/emsdk/clang/e1.38.30_64bit/clang++
emscripten/emsdk/clang/e1.38.30_64bit/clang
我注意到的一件事是,如果我在 QtCreator >> Kits >> Compilers 中使用 add 并选择 Add >> WebAssembly >> C 它会在 Manual >> C++ >> Emscripten Compiler 而不是 Manual >> C >> Emscripten Compiler 中生成一个新条目。这是一个问题吗?
编辑
【问题讨论】:
-
是的,emscripten 是一个工具链(包括编译器),它需要在 QtCreator 中设置为编译器才能创建可用的 WA 工具包。如果您还没有,请参阅doc-snapshots.qt.io/qtcreator-master/…。
-
谢谢,这看起来很有希望。但是,我无法选择
Help > About Plugins > Device Support > WebAssembly -
最近在 Qt 兴趣列表上注意到了这个线程......显然建议使用最新的 QtCreator 预览版,但不清楚这是否仅适用于 Mac。 lists.qt-project.org/pipermail/interest/2019-November/…
-
好的,使用最新的 Qt Creator 预览版有点帮助。我现在可以选择插件,但我仍然无法更改套件中的设备类型。我将在问题中添加屏幕截图
-
我在 Windows 10 上使用 QtCreator-5.15 时遇到了完全相同的问题。由于我是一名 Linux 人员,因此我对 Windows 的了解有些有限,但我已经了解了你所了解的情况。对这个问题有什么新见解吗? QtCreator 的安装应该更加不言自明,并包含您需要的所有工具。
标签: c++ qt build emscripten webassembly