环境搭建

本文主要是针对ubuntu/mac编译环境搭建和调试环境 可以直接参考下面的dockerfile

1.运行环境

选择了虚拟机里安装了ubuntu版本和内核号如图

首先下载

# Get the emsdk repo

git clone https://github.com/emscripten-core/emsdk.git

# Enter that directory

cd emsdk

然后安装em++

# Fetch the latest version of the emsdk (not needed the first timeyou clone)

git pull

# Download and installthe latest SDK tools.

./emsdk installlatest

# Make the "latest" SDK "active" for the current user. (writes ~/.emscripten file)

./emsdk activate latest

# Activate PATH and other environment variables inthe current terminal

source ./emsdk_env.sh

选择安装Python CMake Java

# Install Python

sudo apt-get install python2.7# Install CMake (optional, only needed fortests and building Binaryen)

sudo apt-get installcmake

# Install Java (optional, only needed forClosure Compiler minification)

sudo apt-get install default-jre

当然你也可以选择安装特定版本的em++这里我就选择最新版拉下面步骤跳过y

./emsdk install 1.38.45

可以指定特定版本的后台

# Get a specific version using the upstream backend.

./emsdk install latest-upstream

# Get a specific version using the fastcomp backend.

./emsdk install 1.38.45-fastcomp

输入查看版本

em++ --version

能显示出emcc版本号 到此编译器安装成功

3.编译安装qt

1. 已经安装qt 5.14以上的小伙伴打开qt目录下的 MaintenanceTool进行修改增加qt的源码

新安装的小伙伴在

下载对应的版本并运行

chmod +x 程序 ./程序

填上邮箱开始安装拉

钩上4.11的qt和源码开始安装拉

安装完成后关闭。

考虑到编译器版本兼容问题,决定手动编译qt源码生产成webassembly二进制。

不想编译的可以用在线版本安装编译好的webassembly二进制

下载地址在里面可以选择编译好的webassembly版本这里我们跳过这一部直接开始编译

4.编译qt库

qt目录下新建一个目录来存放编译的进制库

比如我在qt目录下建了一个wasmbuild的目录方便存文件

cd进入qt源码目录 输入刚才建的目录开始编译确认。

~/Qt5.14.1/5.14.1/Src

./configure -xplatform wasm-emscripten -nomake examples -prefix ../wasmbuild/qtbase

其中要选择开源版并同意协调

开始编译吧 这步比较久,喝个茶再回来

make module-qtbase module-qtdeclarative

这个时候编译报错了

查了一下资料

Removed timestamp field from mouse, wheel, devicemotion and deviceorientation events. The presence of a timestamp on these events was slightly arbitrary, and populating this field caused a small profileable overhead that all users might not care about. It is easy to get a timestamp of an event by calling emscripten_get_now() or emscripten_performance_now() inside the event handler function of any event.

qt更新比较慢5.14.1还不支持新版em++

我改回em++ 1.38.30

./emsdk install sdk-fastcomp-1.38.30-64bit

./emsdk activate --embedded sdk-fastcomp-1.38.30-64bit

source ./emsdk_env.sh

重新回到源码目录进行编译并安装到wasm目录下

./configure -xplatform wasm-emscripten -nomake examples -prefix ../wasmbuild/qtbase

make module-qtbase module-qtdeclarative

make install

成功!

这个时候就能用编译的qmake 的命令行 编译项目拉,配置一下qtcreator会比较方便下一步

比如

$ ~/Qt5.14.1/5.14.1/wasmbuild/qtbase/bin/qmake

$ make

到此命令行的编译环境配置完毕

下面我们配置一下qtcreator界面调试哈

5.设置调试

1.qt creator打开webassembly的插件

配置编译器

配置qt版本(qmake)

配置kit

6.运行demo

7.可参考Dockerfile

FROM trzeci/emscripten:1.38.45 AS baseBuild

ARG packages="build-essential git cmake \

python3 \

python \

ninja-build \

build-essential \

wget \

"

# Required for non-interactive timezone installation

RUN ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime

RUN apt-get update && apt-get install -q -yy $packages

RUN mkdir -p /root/dev

WORKDIR /root/dev

# RUN git clone https://github.com/emscripten-core/emsdk.git

# WORKDIR /root/dev/emsdk

# RUN ./emsdk install sdk-fastcomp-1.38.30-64bit

# RUN ./emsdk activate --embedded sdk-fastcomp-1.38.30-64bit

# ENV PATH="/root/dev/emsdk:/root/dev/emsdk/fastcomp-clang/e1.38.30_64bit:/root/dev/emsdk/node/8.9.1_64bit/bin:/root/dev/emsdk/emscripten/1.38.30:${PATH}"

FROM baseBuild AS qtbuilder

# ARG targetBranch=5.14.1

RUN mkdir -p /development

WORKDIR /development

# RUN git clone --branch=$targetBranch git://code.qt.io/qt/qt5.git

RUN wget https://download.qt.io/archive/qt/5.14/5.14.1/single/qt-everywhere-src-5.14.1.tar.xz

RUN tar -xvJf qt-everywhere-src-5.14.1.tar.xz

WORKDIR /development/qt5

RUN mkdir -p /development/qt5_build

WORKDIR /development/qt5_build

RUN /development/qt-everywhere-src-5.14.1/configure -xplatform wasm-emscripten -nomake examples -nomake tests -opensource -feature-thread --confirm-license -prefix /usr/local/Qt

RUN make module-qtbase module-qtdeclarative -j `grep -c ‘^processor‘ /proc/cpuinfo`

# RUN make -j `grep -c ‘^processor‘ /proc/cpuinfo`

RUN make install

# Construct the build image from user perspective

FROM baseBuild AS userbuild

COPY --from=qtbuilder /usr/local/Qt /usr/local/Qt

ENV PATH="/usr/local/Qt/bin:${PATH}"

WORKDIR /project/build

# CMD qmake /project/source && make -j `grep -c ‘^processor‘ /proc/cpuinfo`

CMD /usr/local/Qt/bin/qmake /project/source && make -j `grep -c ‘^processor‘ /proc/cpuinfo`

参考资料:

1.Qt for WebAssembly官方教程

2. WebAssembly的限制

3. Qt 下载地址主源

原文:https://www.cnblogs.com/wormholes/p/12296367.html

qt程序 html安装,qt webassembly emscripten build 环境搭建相关推荐

  1. 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子

      本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...

  2. piwik php安装,Piwik 的安装使用以及 PHP+nginx 环境搭建

    Piwik 的安装使用以及 PHP+nginx 环境搭建 1.Piwik 简介 Piwik 是一个 PHP 和 MySQL 的开放源代码的 web 统计软件, 它给你一些关于你的网站的实用统计报告, ...

  3. 嵌入式linux安装qt,树莓派上安装qt

    在树莓派上安装了官方的raspbian系统.为了在能在上面开发程序,在系统上安装了qt4 .参考链接http://qt-project.org/wiki/apt-get_Qt4_on_the_Rasp ...

  4. Qt在Windows下的三种编程环境搭建

    未经验证,记录在此. 尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得 ...

  5. 各种版本QT下载地址与VS2013+QT5.3.1环境搭建过程

    1. 所有Qt版本下载地址: http://download.qt.io/archive/qt/ 2. 所有Qt Creator下载地址: http://download.qt.io/archive/ ...

  6. stm32mp1安装linux系统,stm32mp1linux开发环境搭建(cortex a7)

    原标题:stm32mp1linux开发环境搭建(cortex a7) 写在前面: 本文章为<STM32MP1系列教程之Cortex-A7开发篇>系列中的一篇,全系列总计11篇.笔者使用的开 ...

  7. 黑马程序员-第一天接触Android,环境搭建

    随着Android手机越来越普及,我也对Android产生浓厚的兴趣,今天我就照着黑马程序员的视频一步一步搭建开发环境.以下是我的笔记. 第1步.环境搭建 1.1.JDK安装 1.2.Eclipse安 ...

  8. Python+微信小程序开发(一)了解和环境搭建

    一.小程序介绍 1.什么是微信小程序? 移动互联网时代,手机 手机软件,在手机上中安装很多软件 腾讯和阿里(只安装自己不用别人) 腾讯:微信 + N小程序 阿里:支付宝 + N小程序 2.为什么要做小 ...

  9. java mvc 小程序_[Java教程]Spring MVC 的环境搭建和入门小程序

    [Java教程]Spring MVC 的环境搭建和入门小程序 0 2017-02-17 00:00:16 1.1.下载spring框架包. 1.1.1百度搜索Spring Framework. 进入s ...

最新文章

  1. 零基础参加Java培训班合适吗
  2. java.exe闪退_tomcat7.exe闪退 解决点击startup.bat后闪退的情况 - 电脑常识 - 服务器之家...
  3. 网络营销专员浅析在网络营销中网站关键词对网站流量获取有何影响?
  4. JAVA虚拟机体系结构
  5. 现代微波滤波器结构与设计_高功率射频及微波无源器件中的考虑和限制
  6. 如何获取字符串中某个具体的数值--通过json.load转化成字典形式获取
  7. HDU - 4825 Xor Sum(字典树)
  8. 序列化以及反序列化二叉树
  9. CG-CTF-Web-变量覆盖
  10. 终端卡顿优化的全记录
  11. Rendering Path
  12. HashMap的实现原理看这篇就够了,图文源码详解,深入浅出简单易懂
  13. 通过寄生组合式继承创建js的异常类
  14. Ctrix-XenApp中误删应用服务器,如何重新添加
  15. 使用Magoshare for Mac无法打开恢复的文件或扫描后找不到丢失的文件怎么办?
  16. filezillaserver使用教程(filezilla搭建ftp服务器步骤)
  17. 基于飞桨PaddlePaddle实现BigGAN生成动漫图像——为艺术创作赋能
  18. java 事务提交_Java如何提交事务/查询?
  19. 计算机里什么是目录,c盘perflogs是什么文件夹_电脑中perflogs文件夹能删除吗-win7之家...
  20. ChromeOptions--禁止加载图片

热门文章

  1. 【软考学习5】流水线基本概念、周期执行时间、吞吐率、加速比和效率的计算
  2. 排球少年美图Mac动态壁纸
  3. ansible自动化工具详解
  4. Java之下载相关网页到本地
  5. T-Mobile CEO为视频节流辩护 声称他支持网络中立
  6. 不可不知道的知识常识(一)
  7. 电商对接使用圆通电子面单接口方法
  8. MATLAB R2019a网盘分享
  9. 马尔可夫模型 | Python实现生成和拟合隐马尔可夫模型(HMM)
  10. 高校师生福利!从现在起,可以免费申请LocaSpace和Wish3D的SDK!