Web Assembly C++ (2) : QT Web Assembly

本篇主要是对qt-webassembly环境配置

Qt for WebAssembly是一个平台插件,可让您构建Qt应用程序,并将其集成到您的网页中。它不需要任何客户端安装,并减少了服务器端资源的使用

环境

  • ubuntu 18.04.04

  • qt 和 emsdk 版本对应

Qt 5.12: 1.38.16
Qt 5.13: 1.38.27 (multithreading: 1.38.30)
Qt 5.14: 1.38.27 (see “Emsdk version for Qt 5.14” below)
Qt 5.15: 1.39.8 (tentative; 1.38.x/fasctcomp is no longer supported)

安装

使用emsdk安装特定的emscripten版本(示例):

./emsdk install sdk-fastcomp-1.38.27-64bit or (was) sdk-1.38.16-64bit
./emsdk activate --embedded sdk-fastcomp-1.38.27-64bit or (was) sdk-1.38.16-64bit

您可能需要安装多个版本的SDK,在这种情况下,“-embedded”选项很有用。它在SDK目录中找到所有配置和缓存文件,以便多个版本不冲突。SDK版本中的“ 64位”是指主机位。

Qt 5.14的Emsdk版本
Qt 5.14二进制打包程序由emsdk 1.38.27生成:确保在使用二进制程序包时使用该版本。

从emsdk 1.39.0开始,emcc编译器不再通过asm.js进行编译,而是直接生成wasm字节码。对Qt 5.14的支持范围是1.39.x系列。但是,请注意,构建标志仍是为以前的编译器量身定制的,在此情况下,最小化中间asm.js的大小很重要。

从源代码构建Qt
可以从您的Qt帐户的“下载”部分下载Qt源。对于最新版本的代码,您还可以直接从我们的git存储库中检出它:

http : //code.qt.io/cgit/qt/qt5.git/

将Qt配置为针对“ wasm-emscripten”平台的交叉编译版本。这将隐式设置“ -static”和“ -no-feature-thread”选项。默认情况下未构建Qt示例,以最小化构建大小和时间。传递“ -compile-examples”选项以启用示例。
./configure -xplatform wasm-emscripten -nomake示例-prefix $ PWD / qtbase

qt交叉编译

将Qt配置为平台的交叉编译版本wasm-emscripten

 ~/Qt/5.14.0/Src/configure -xplatform wasm-emscripten -nomake examples -prefix $PWD/qtbase
 
 make module-qtbase module-qtdeclarative [other modules]

other modules: 自由选择模块

    module-qtbase \
    module-qtsvg \
    module-qtxmlpatterns \
    module-qtjsbackend \
    module-qtdeclarative \
    module-qtscript \
    module-qtmultimedia \
    module-qtactiveqt \
    module-qttools \
    module-qtquick1 \
    module-qtimageformats \
    module-qtgraphicaleffects \
    module-qttranslations \
    module-qtdoc

你可能感兴趣的:(webassembly,qt)