簡體   English   中英

Qt web 組件:配置套件

[英]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文件夾,其中包含binqmake

$ ~/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 維護工具並查看已安裝的軟件包時,我得到以下信息: qt_maintenance

EDIT2:更改為 Qt Creator 4.11.0-beta2 (4.10.83)后,我能夠遵循描述的部分內容。 我能夠 select 插件,但我仍然無法更改設備類型。 qtDeviceType

也許這與我現在得到的這個錯誤有關: 錯誤

編輯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 這是一個問題嗎?

編輯

這是我的編譯器頁面的樣子: 新編譯器

  1. 您需要將 .emscripten 文件從 emsdk 目錄復制到您的主目錄 (/home/myUsername)。

  2. 您需要手動修復文件中的路徑(參見下面的示例)。

請注意,至少在我使用的版本(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM