[英]Qt web assembly: configure kit
我想為我的科學計划測試 QT WebAssembly。 因此,我安裝了 emscripten。
$em++ --version
返回
emcc (Emscripten gcc/clang-like replacement) 1.38.30 (commit a5082b232617c762cb65832429f896c838df2483)...
然后我使用 Qt WebInstaller 安裝了 Qt。 在我的安裝目錄中,我有一個wasm_32
文件夾,其中包含bin
和qmake
:
$ ~/Qt_web/5.13.2/wasm_32/bin/qmake --version
返回
QMake version 3.1
Using Qt version 5.13.2 in /home/myName/Qt_web/5.13.2/wasm_32/lib
但是,當我啟動 Qt 創建器時,單擊Projects
我看到一個名為: Qt 5.13.2 WebAssembly
但我不能 select 它(它是灰色的) 當我單擊管理套件時,我看到沒有為 Qt 5.13.2.WebAssembly 選擇 C 和 C++ 編譯器。
當我更改為Qt Versions
時,我也會收到警告。 警告說:
ABI detection failed: Make sure to use a matching compiler when building. No qmlscene installed.
問題:
我真的不明白emscripten
與這一切有什么關系。 emscripten 是編譯器嗎? 如果是,它是否應該由Qt 5.13.2 WebAssembly
套件自動選擇? 合適的Qt WebAssembly
套件是什么樣的?
如果我將 select gcc 作為我的編譯器,我會收到一條錯誤消息:
/home/myName/Qt_web/5.13.2/wasm_32/plugins/platforms/libqwasm.a:-1: error: error adding symbols: File format not recognized
編輯:
當我打開 qt 維護工具並查看已安裝的軟件包時,我得到以下信息:
EDIT2:更改為 Qt Creator 4.11.0-beta2 (4.10.83)
后,我能夠遵循此描述的部分內容。 我能夠 select 插件,但我仍然無法更改設備類型。
編輯3:
好像我的 emscripten 編譯器有一些問題。 編譯器是否位於:
emscripten/emsdk/clang/e1.38.30_64bit/clang++
emscripten/emsdk/clang/e1.38.30_64bit/clang
One thing I noticed is that If I use add
in QtCreator >> Kits >> Compilers and I select Add >> WebAssembly >> C
It generates a new entry in Manual >> C++ >> Emscripten Compiler
and not in Manual >> C >> Emscripten Compiler
。 這是一個問題嗎?
編輯
您需要將 .emscripten 文件從 emsdk 目錄復制到您的主目錄 (/home/myUsername)。
您需要手動修復文件中的路徑(參見下面的示例)。
請注意,至少在我使用的版本(1.39.8)中,.emscripten 文件是 python 腳本(可能是錯誤?)
編輯前的示例文件:
import os
emsdk_path = os.path.dirname(os.environ.get('EM_CONFIG')).replace('\\', '/')
NODE_JS = emsdk_path + '/node/12.18.1_64bit/bin/node'
LLVM_ROOT = emsdk_path + '/upstream/bin'
BINARYEN_ROOT = emsdk_path + '/upstream'
EMSCRIPTEN_ROOT = emsdk_path + '/upstream/emscripten'
TEMP_DIR = emsdk_path + '/tmp'
COMPILER_ENGINE = NODE_JS
JS_ENGINES = [NODE_JS]
編輯后:
import os
emsdk_path = os.path.dirname(os.environ.get('EM_CONFIG')).replace('\\', '/')
NODE_JS = '/home/myUsername/node/12.18.1_64bit/bin/node'
LLVM_ROOT = '/home/myUsername/upstream/bin'
BINARYEN_ROOT = '/home/myUsername/upstream'
EMSCRIPTEN_ROOT = '/home/myUsername/upstream/emscripten'
TEMP_DIR = '/home/myUsername/tmp'
COMPILER_ENGINE = NODE_JS
JS_ENGINES = [NODE_JS]
完成上述步驟后,qt 創建者能夠檢測到 Emscripten 編譯器而沒有錯誤。
您是否嘗試在套件選項卡中使用此值設置編譯器?
Compiler: C compiler x86 64 e1.38.27_bit C++ compiler x86 64 e1.38.27_bit
Qt 版本:使用 webassembly 構建的 qmake 的路徑,例如 webassembly 二進制文件或您的自定義二進制文件。
Qt mkspec:wasm-emscripten
希望這些信息對您有所幫助,如果您遇到任何其他問題,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.