Überprüfung der Emscripten-Entwicklungsumgebung

Nachdem Sie das SDK installiert oder eine Emscripten-Entwicklungsumgebung aus den Quellen erstellt haben, sollte der Compiler einfach funktionieren! Dieser Abschnitt zeigt, wie Sie überprüfen können, ob die Umgebung korrekt eingerichtet wurde, und wie Sie Installationsprobleme beheben können, wenn sie auftreten.

Testen der Umgebung

Sanity-Tests

Der erste Schritt zur Überprüfung der Umgebung ist das Ausführen von Emscripten mit --check. Die Option gibt Informationen über die Toolchain aus und führt einige grundlegende Sanity-Tests durch, um zu überprüfen, ob die erforderlichen Tools verfügbar sind.

Öffnen Sie ein Terminal in dem Verzeichnis, in dem Sie Emscripten installiert haben (unter Windows öffnen Sie die Emscripten-Eingabeaufforderung). Rufen Sie dann das Emscripten Compiler Frontend (emcc) wie gezeigt auf

./emcc --check

Hinweis

Unter Windows rufen Sie das Tool mit emcc anstelle von ./emcc auf.

Die folgende Ausgabe meldet beispielsweise, dass die richtige Version von clang nicht gefunden werden konnte

emcc (Emscripten GCC-like replacement + linker emulating GNU ld) 1.21.0
shared:INFO: (Emscripten: Running sanity checks)
emcc: warning: LLVM version for clang executable "/usr/bin/clang" appears incorrect (seeing "16.0", expected "18") [-Wversion-check]

An diesem Punkt müssen Sie alle fehlenden Komponenten installieren und aktivieren. Wenn alles richtig eingerichtet ist, sollte emcc ---check keine Warnungen ausgeben, und wenn Sie einfach emcc eingeben (ohne Eingabedateien), erhalten Sie eine Fehlermeldung

emcc: error: no input files

Ein einfaches Beispiel erstellen

Der nächste Test ist, tatsächlich Code zu kompilieren! Navigieren Sie in der Befehlszeile zum Emscripten-Verzeichnis für das aktuelle SDK und versuchen Sie, den Testcode hello_world.cpp zu kompilieren

cd emscripten/<version of emscripten you installed>
./emcc test/hello_world.cpp

Dieser Befehl sollte ohne Warnungen abgeschlossen werden und Sie sollten die neu kompilierte JavaScript-Datei (a.out.js) im aktuellen Verzeichnis finden.

Wenn die Kompilierung erfolgreich ist, sind Sie bereit für das Emscripten-Tutorial. Wenn nicht, lesen Sie die unten stehenden Anweisungen zur Fehlerbehebung.

Die gesamte Testsuite ausführen

Emscripten verfügt über eine umfassende Testsuite, die verwendet werden kann, um die gesamte Toolchain oder Teile davon weiter zu validieren. Weitere Informationen finden Sie unter Emscripten Test Suite.

Fehlerbehebung

Führen Sie zuerst ./emcc --check aus und überprüfen Sie die Ausgabe, um fehlende Komponenten zu finden. Sie können auch ./emcc --clear-cache versuchen, um den internen Cache des Compilers zu leeren und ihn in einen bekannten guten Zustand zurückzusetzen.

Fehlende Komponenten installieren

Fehlende Tools können oft mit dem Emscripten SDK (emsdk) hinzugefügt werden. Um beispielsweise eine Warnung zu beheben, dass Java fehlt, suchen Sie es im Repository, installieren Sie es und setzen Sie es dann auf aktiv

#List all the components. Look for the missing component (in this case "java-7.45-64bit")
./emsdk list

#Install the missing component
./emsdk install java-7.45-64bit

#Set the component as active
./emsdk activate java-7.45-64bit

Wenn Sie Emscripten manuell aus dem Quellcode erstellen, finden Sie unter diesem Link Informationen zum Bezug aller Abhängigkeiten.

Andere häufige Probleme

Andere häufige Probleme, die überprüft werden sollten, sind

  • Fehler in den Pfaden in .emscripten. Diese sind unwahrscheinlicher, wenn Sie die Datei mit emsdk aktualisieren.

  • Verwenden älterer Versionen von Node oder JavaScript-Engines. Verwenden Sie die Standardversionen für das SDK, wie sie mit emsdk list aufgeführt sind.

  • Verwenden älterer Versionen von LLVM. Die richtigen Versionen werden mit dem SDK geliefert, aber wenn Sie die Umgebung aus dem Quellcode erstellen, sollten Sie sicherstellen, dass Sie die richtige Version von LLVM verwenden (die Sie über die emscripten-releases DEPS-Datei und -Historie finden können; andere Versionen könnten funktionieren, insbesondere nahegelegene, werden aber von uns nicht getestet und funktionieren daher nicht garantiert).

Wenn nichts davon hilfreich ist, kontaktieren Sie uns bitte, um Hilfe zu erhalten.