将 QT WebAssembly 与 Emscripten 关联

Posted

技术标签:

【中文标题】将 QT WebAssembly 与 Emscripten 关联【英文标题】:Associate QT WebAssembly with Emscripten 【发布时间】:2020-06-25 20:44:43 【问题描述】:

我们用 Python 语言用 Qt 开发了一个桌面应用程序。我们希望将桌面版转换为网页版。

对于 Qt 5.13 或更高版本,有一个名为 WebAssembly 的插件,它使用 Emscripten 进行代码翻译。

问题

我们已经安装了 Qt 5.13 和 Qt 5.14,Web Assembly,但是我们无法让 Qt 识别 Emscripten。要么它不识别 Emscripten,要么,如果你识别它,你不理解 Emscripten 目录。

我们是否安装了 Emscripten 错误?我们需要知道任何细节吗?

快照

【问题讨论】:

您是否尝试手动设置emccem++ 的路径? 查看我的comment 类似的问题。它可能会有所帮助 【参考方案1】:

Qt for WebAssembly 是为 C++ 而不是 Qt for python,即使 python 可以在 WebAssembly 上运行,python 库很可能永远不会被移植到 WebAssembly,因为这是一个相当大的技术挑战,也是因为 Qt wasm 应用程序是静态链接的,这给 python 库带来了很大的问题。如果您的应用严重依赖 QML,您应该能够在浏览器中移植和运行您的应用。如果您想进行一些快速测试,您可以使用 Felgo WebAssembly 工具,例如 Web 编辑器 https://felgo.com/web-editor 或成熟的 Web IDE https://ide.felgo.com

【讨论】:

【参考方案2】:

您必须在运行 QtCreator 之前运行:source /path/to/emsdk/emsdk_env.sh,但如果有意义的话,请在相同的上下文中运行。


以下是如何解决此问题的示例

在您的 HOME 文件夹中创建文件 em-qtcreator.sh 并执行以下操作: #!/bin/bash 源 /path/to/emsdk/emsdk_env.sh /path/to/qtcreator

现在,只需使用执行该脚本

chmod +x em-qtcreator.sh 

./em-qtcreator.sh

这应该允许 QtCreator 自动检测 emscripten,否则您必须在构建配置中手动添加 emcc 编译器

【讨论】:

以上是关于将 QT WebAssembly 与 Emscripten 关联的主要内容,如果未能解决你的问题,请参考以下文章

Qt for WebAssembly

Qt 也要拥抱 WebAssembly!将在 5.11.0 版本中正式支持

Qt for WebAssembly

Qt for WebAssembly测试记录

如何在 qt webassembly 中使用 SQLITE

将 OpenSSL 与 webassembly 链接