目录
Qt5-WebAssemlly总结
1 开发环境概述
WebAssembly(缩写为wasm)是由主流浏览器厂商组成的W3C社区团体制定的一个新的规范,是一个可植、体积小、加载快并且兼容 Web 的全新格式。WebAssembly中文网官网http://webassembly.org.cn。wasm是基于堆栈的虚拟机的二进制指令格式。 wasm被设计为一个可移植的目标,用于编译C/C++/Rust等高级语言,支持在Web上部署客户端和服务器应用程序。
QT for webassembly本质就是让你直接在浏览器窗口内运行Qt应用程序。Qt在Qt5.11.0版本中,将其作为工具包更新的一部分正式发布,Qt正式拥抱WebAssembly。
现在开源软件在linux中支持都非常好,开发运行环境都容易部署。但大部分开发者的开发环境基本都是windows,各种技术理论上都是跨平台运行的,所以在windows上部署开发和运行环境也是可行的。
1.1 MinGW-64安装
Qt5对WebAssembly的支持是基于MinGW的,MinGW著名C/C++编译器GCC的Windows版本。https://www.jianshu.com/p/d66c2f2e3537这个网页对这个东西有个详细的介绍。根据笔记本的操作系统选择x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z这个版本,千万不要选错,如果选择了不匹配的版本,编译QT没问题,最后编译应用程序是时就报错,初学者只要报错就蒙了。刚玩这玩意,让排错,搞笑吧,出错后尽量google然后凭自己的理解,慢慢解决。
将压缩包解压,设置PATH环境变量PATH+=C:\mingw64\bin,测试下出现下图输出,MinGW安装成功。
1.2 EMSDK安装
2012年,Mozilla的工程师AlonZakai在研究 LLVM 编译器时突发奇想:许多 3D 游戏都是用C/C++ 语言写的,如果能将C/C++语言编译成JavaScript代码,它们不就能在浏览器里运行了吗?众所周知,JavaScript 的基本语法与C语言高度相似。
于是,他开始研究怎么才能实现这个目标,为此专门做了一个编译器项目 Emscripten。这个编译器可以将C / C++ 代码编译成 JS 代码,但不是普通的 JS,而是一种叫做