又一开发工具宣布加入 WebAssembly 生态圈!老牌跨平台开发框架 Qt 官方表示,当下个 Qt 版本 5.11.0 发布时,作为 Qt 5.11 工具包更新的一部分,他们计划发布 Qt for WebAssembly 的技术预览版,可让你直接在浏览器窗口内运行 Qt 应用程序。
Qt for WebAssembly 可将 Qt 应用构建为 WebAssembly 模块,目前处于开发阶段。现在 Qt for WebAssembly 技术预览版已发布 Beta 版本,Qt 开发者推荐通过 Firefox 浏览器搭配使用,因为它目前提供了最快的 WASM 编译性能。此外,该模块目前不支持 Windows 作为主机平台。
Qt 研发部图形和多媒体团队经理 Eskil Abrahamsen Blomfeldt 在博客中说道:WebAssembly 由于是字节码的格式,可以将应用程序快速部署到有支援 Web 浏览器的装置上。
这个特性让 WebAssembly 不需要任何安装过程,就能在浏览器的沙盒中安全执行,Eskil Abrahamsen Blomfeldt 认为,这个适用于不需要存取完整装置功能的应用,并且,可以给使用者提供快速简单的使用经验。
在 Qt 5.11.0 发布时,使用者就能通过 Qt 将 C++ 代码编译成 WebAssembly,并且直接在浏览器中执行 Qt 应用程序,但目前仅支持客户端的应用。官方文件提到,由于现在仍在技术预览版,还有许多已知问题尚未解决,包括现在无法将 Windows 作为主机平台,但可以使用适用于 Linux 的 Windows 子系统。
另外,Qt Quick 使用软件后端,这会对较复杂的 UI 性能产生影响,并且也禁止使用着色器,但这项问题很快会得到解决。而且,目前在 WebAssembly 中不支持线程,如果您的应用程序依赖于线程,这可能会导致编译出来的 WebAssembly 发生无法意料的结果。
虽然 Mozilla 已有工具 Emscripten 能将 C++ 编译为 WebAssembly,但 Qt 作为知名的跨平台开发框架,宣布支持 WebAssembly 势必能将更多开发者带入这个生态圈。
博客详情请看这里:
https://wiki.qt.io/Qt_for_WebAssembly