Startseite » Emscripten aus dem Quellcode erstellen
» Ü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.
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
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.
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.
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 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, 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.