うまくいかないときは
ビルドエラー¶
インテリセンス上のエラー¶
症例¶
対処策¶
emcc を使ったビルドが成功する限り、これらのエラーは無視できます。
UnicodeDecodeError¶
症例¶
対処策¶
- 環境変数
PYTHONUTF8=1
を設定する
環境変数の設定
-
「Windows の設定」を開き、検索欄に「環境変数」と入力する。すると、「環境変数の編集」という検索結果が出るので、それをクリックする。
-
「環境変数」というタイトルのウィンドウが表示されるので、「新規(N)...」をクリックする。
-
「ユーザ環境変数の編集」というタイトルのウィンドウが表示されるので、変数名に「PYTHONUTF8」(半角英字、小文字不可)と、変数値に「1」(半角数字)と入力する。
Emscripten ports に関するビルドエラー¶
症例¶
cache:INFO: generating port: libz.a... (this will be cached in "C:\...\cache\sysroot\lib\wasm32-emscripten\libz.a" for subsequent builds)
shared : error : C:\...\cache\wasm\ports-builds\zlib\adler32.c: No such file or directory ("C:\...\cache\wasm\ports-builds\zlib\adler32.c" was expected to be an input file, based on the commandline arguments provided)
shared : error : C:\...\cache\wasm\ports-builds\zlib\compress.c.c: No such file or directory ("C:\...\cache\wasm\ports-builds\zlib\compress.c.c" was expected to be an input file, based on the commandline arguments provided)
shared : error : C:\...\cache\wasm\ports-builds\zlib\deflate.c: No such file or directory ("C:\...\cache\wasm\ports-builds\zlib\deflate.c" was expected to be an input file, based on the commandline arguments provided)
...
system_libs : error : a problem occurred when using an emscripten-ports library. try to run `emcc --clear-ports` and then run this command again
対処策¶
-
フォルダ
%EMSDK%/upstream/emscripten/cache/ports
をエクスプローラで開き、 zlib.zip をその場で展開する。Zip ファイルの展開
-
Zip ファイルを右クリックして、すべて展開(T)... をクリックします。
-
圧縮 (ZIP 形式) フォルダーの展開という名前のウィンドウが表示されるので、展開 をクリックします。
-
-
フォルダ
%EMSDK%/upstream/emscripten/cache
を、お使いのウイルス対策ソフトウェアのスキャン除外フォルダに追加する。
.tlog 生成時のビルドエラー¶
症例¶
対処策¶
- 再度プロジェクトをビルドする。
- この現象は1回目のビルドで必ず発生します。
Asyncify Addlist Contained a Non-matching Pattern という警告が出る¶
症例¶
EMSCRIPTENLINK : warning : Asyncify addlist contained a non-matching pattern: s3d::Clipboard::GetText(\*) (s3d::Clipboard::GetText\28\*\29)
対処策¶
- この警告は意図されたものです。
実行時エラー¶
Gamepad State is null¶
症例¶
対処策¶
- WebGL アプリをセキュアコンテキスト (https://) 上で配信する。
メッセージボックス -1 が表示される¶
症例¶
対処策¶
- デバッグビルドを有効にしてください
- エラーメッセージはリリースビルドでは最適化によって省略されてしまいます。