环境搭建

本文主要是针对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. 安装 Enthought Tool Suite 时遇到的问题
  2. Python 实现感知器模型、两层神经网络
  3. python用户名和密码登录函数_基于Python构建用户ID和密码存储查询系统,python,建立,一个,用户名,UserID,Password,的...
  4. 机器学习中对抗性攻击的介绍和示例
  5. Gradle 的使用
  6. Understanding Spring Web Application Architecture: The Classic Way--转载
  7. 三种流行的数据库查询表记录数【转】
  8. 睡前一分钟打造完美下半身 - 健康程序员,至尚生活!
  9. Java03-day03【switch、循环(for、while、do...while)、三种循环的区别、跳转控制语句、Random、循环经典例题】
  10. Trip to America for 3 more months
  11. 聊聊四种Oracle数字取整函数
  12. 理解BERT每一层都学到了什么
  13. java pdf 水印_java pdf加水印的方法
  14. 谈谈UG二次开发程序入口
  15. QQ空间g_tk算法的JS脚本的获取和分析
  16. Dremel made simple with Parquet
  17. SEO中长尾关键字的挖掘与布局思路
  18. 【工具】在TTF字体中提取想要的文字,让字体文件变迷你
  19. [视野] AI创业必知6大核心问题:如何选择赛道、搭配团队和应对巨头挑战
  20. 基本的python内置函数str(x)_Python内置函数(12)——str

热门文章

  1. php图片转字符程序,将图片转成base64字符串的PHP代码
  2. 影视宣传片短片广告片策划制作
  3. JDK版本的区别及选择(如7u71和7u72)
  4. 自定义Android带图片和文字的ImageButton
  5. JavaScript 年历的制作
  6. c语言第七章作业,C语言学习第七章
  7. 动态权重之多任务不平衡论文 (一)
  8. 学习笔记:weka->classify->classify output->summary
  9. 日报2015/10/26(极客学院安卓视频学习)
  10. Event Reciever ItemUpdated fired twice