首页| 论坛| 消息

标题:qt for webassembly环境搭建图文教程
作者:liudianwu
日期:2021-01-22 16:18
内容:

## 一、前言
从Qt5.14开始,官方的在线安装提供了qt for webassembly构建套件,这对很多小白来说绝对是个好消息,也绝对是个好东西,好消息是不用再去交叉编译自己生成qt for webassembly的qt库,在线安装版本直接就给你安装好,很多小白就困在如何交叉编译qt for webassembly的qt库上了,环境简直是弄哭了,望而却步;好东西是你可以直接将你现有的qt程序直接编译成wasm文件然后直接网页运行,注意这里不是说activex的形式在IE中运行,而是直接各种支持wasm的浏览器上直接运行,比如谷歌浏览器、火狐浏览器、edge浏览器等,反正主流的浏览器都支持,是不是很牛逼,大致的原理就是借助emsdk中的emscripten编译器将qt的程序直接静态编译生成wasm文件,然后同时生成对应的js文件和html文件,js文件负责加载wasm文件进行编译使用canvs绘制程序。理论上c++程序执行效率要比js高,个人体验下来也是效率蛮高,最激动的就是一行代码不用修改,直接就可以编译成网页程序。

WebAssembly介绍:
- WebAssembly是一种可以使用非JavaScript编程语言编写代码并且能在浏览器上运行的技术方案。
- WebAssembly有一套完整的语义,实际上wasm是体积小且加载快的二进制格式,其目标就是充分发挥硬件能力以达到原生执行效率。
- WebAssembly运行在一个沙箱化的执行环境中,甚至可以在现有的JavaScript虚拟机中实现。在web环境中,WebAssembly将会严格遵守同源策略以及浏览器安全策略。
- WebAssembly设计了一个非常规整的文本格式用来、调试、测试、实验、优化、学习、教学或者编写程序。可以以这种文本格式在web页面上查看wasm模块的源码。
- WebAssembly在web中被设计成无版本、特性可测试、向后兼容的。WebAssembly可以被JavaScript调用,进入JavaScript上下文,也可以像WebAPI一样调用浏览器的功能。当然,WebAssembly不仅可以运行在浏览器上,也可以运行在非web环境下。

1. qt+widget编译的程序网页地址:
[https://feiyangqingyun.gitee.io/qwidgetdemo/](https://feiyangqingyun.gitee.io/qwidgetdemo/)
2. qt+quick编译的程序网页地址 ..


#1 [uidab 01-22 16:32]
大佬,多讲讲好处,以及应用场景。
#2 [samhuilong 01-22 18:53]
牛掰,工业软件进军web的技术开始掀起
#3 [lieber 01-22 19:52]
好东西,新的理念
#4 [lukai_q_t 01-23 10:06]
wasm网页加载是不是很慢???
#5 回 lukai_q_t 的帖子 [liudianwu 01-23 10:57]
lukai_q_t:wasm网页加载是不是很慢??? (2021-01-23 10:06) 
首次加载慢,因为是静态编译的,所以可能有十几兆,后面加载就很快,有缓存。

<< 1 2 3 >> (1/3)

回复 发表
主题 版块