J'essaye de compiler l'exemple de projet de clavier virtuel de QtCreator dans WebAssembly.

Pour compiler, la bibliothèque wasm doit être liée statiquement. Selon la documentation:

Constructions statiques

Le clavier virtuel peut être construit et lié statiquement à l'application. Cela implique que Qt est également construit de manière statique (en utilisant l'option -static dans la ligne de commande configure).

Les versions statiques du clavier virtuel sont activées en ajoutant CONFIG + = static à la ligne de commande qmake, puis en reconstruisant.

Certains modules tiers utilisés par le clavier virtuel sont toujours construits en tant que bibliothèques partagées. Ces modules sont Hunspell et Lipi Toolkit.

Dit ainsi, j'essaye de compiler avec

mkdir buildwasm && cd buildwasm
/opt/Qt/5.15.2/wasm_32/bin/qmake .. CONFIG+=static CONFIG+=disable-hunspell && make -j8

Mais d'une manière ou d'une autre, le clavier n'est pas lié statiquement et je reçois cette erreur

wasm-ld: error: initial memory too small, 18699856 bytes needed
shared:ERROR: ...

Est-ce que je manque quelque chose ou c'est une sorte de bug?

5
Moia 26 févr. 2021 à 18:48

1 réponse

Meilleure réponse

Vous pouvez utiliser l'indicateur de compilateur -s TOTAL_MEMORY=32MB pour prédéfinir une taille au moment du lien emcc. Question associée: wasm-ld: erreur: mémoire initiale également petit, 18317952 octets nécessaires

Il existe un paramètre de limite par défaut, défini sur: 16777216 https://github.com/emscripten-core/ emscripten / blob / master / src / settings.js # L171

2
Mosolov Sergey 3 mars 2021 à 13:09