本篇主要是对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