Emscripten SDK (emsdk)

Das Emscripten SDK ( emsdk ) wird für alle SDK-Wartungsarbeiten verwendet. Sie müssen das SDK nur einmal installieren; danach kann emsdk alle weiteren Updates durchführen!

Mit emsdk können Sie beliebige SDKs oder Tools herunterladen, installieren oder entfernen und sogar die aktuellsten Versionen in der Entwicklung auf GitHub verwenden. Um unter Windows auf emsdk zuzugreifen, starten Sie zuerst die Emscripten-Eingabeaufforderung. Die meisten Operationen haben die Form ./emsdk command.

Dieses Dokument bietet die Befehlssyntax und eine Reihe von Anleitungen, die erklären, wie gängige und erweiterte Wartungsoperationen durchgeführt werden.

Befehlszeilensyntax

./emsdk [help | list [–old] | update | install <tool/sdk> | uninstall <tool/sdk> | activate <tool/sdk>]

Argumente

Befehl

Beschreibung

list [--old]

Listet alle aktuellen SDKs und Tools sowie deren Installationsstatus auf. Mit dem Parameter --old werden auch historische Versionen angezeigt.

update

Ruft die neueste Liste aller verfügbaren Tools und SDKs ab (installiert sie aber nicht).

install <tool/sdk>

Lädt das angegebene Tool oder SDK herunter und installiert es.

uninstall <tool/sdk>

Entfernt das angegebene Tool oder SDK von der Festplatte.

activate <tool/sdk>

Setzt das angegebene Tool oder SDK als Standard-Tool in der Systemumgebung. Unter Linux müssen Sie die Umgebungseinstellungen zusätzlich mit source ./emsdk_env.sh aktivieren, wie unter „Wie ändere ich die aktuell aktive SDK-Version?“ beschrieben.

help

Listet alle unterstützten Befehle auf. Dieselbe Liste wird ausgegeben, wenn kein Befehl angegeben wird.

Hinweis

  • Für Linux und macOS werden die Befehle mit ./emsdk aufgerufen. Unter Windows verwenden Sie emsdk.

Tools und SDK-Ziele

Das oben als Befehlsargument angegebene <tool/sdk> ist eines der Ziele, die mit ./emsdk list (oder ./emsdk list --old) aufgelistet werden.

Beachten Sie, dass einige der Tools- und SDK-Namen master oder main enthalten: Diese Ziele werden verwendet, um die allerneuesten Versionen aus den Emscripten-Main- und Master-Branches zu klonen und zu pullen.

Sie können auch ein Ziel von latest angeben, um das aktuellste SDK zu erhalten.

SDK-Konzepte

Die Emscripten-Toolchain umfasst eine Reihe verschiedener Tools, darunter Clang, Emscripten, Java, Git, Node usw. Emsdk ist ein kleiner Paketmanager zur Steuerung, welche Tools installiert sind und, aus der Menge der installierten Tools, welche aktiv sind.

Die aktuell verfügbaren Tools und SDKs werden mit ./emsdk list aufgelistet. Diese können einzeln (./emsdk install node-0.10.17-64bit) oder als Gruppe (./emsdk install node-0.10.17-64bit java-7.45-64bit) installiert werden.

Die SDK-Ziele sind ein bequemer Mechanismus zur Angabe des vollständigen Satzes von Tools, die von einer bestimmten Emscripten-Version verwendet werden. Zum Beispiel sind die beiden Zeilen unten äquivalent

./emsdk install sdk-upstream-main-64bit
./emsdk install git-1.8.3 clang-upstream-main-64bit node-0.10.17-64bit python-2.7.5.3-64bit java-7.45-64bit llvm-git-main-64bit emscripten-main-64bit

Ein bestimmtes installiertes SDK (oder Tool) kann dann als aktiv festgelegt werden, was bedeutet, dass es bei der Ausführung von Emscripten verwendet wird. Die aktive „Compilerkonfiguration“ wird in einer Konfigurationsdatei (.emscripten) innerhalb des emsdk-Verzeichnisses gespeichert.

Hinweis

Die verschiedenen von emsdk verwalteten Tools und SDKs werden in verschiedenen Verzeichnissen unter dem Stammordner gespeichert, den Sie bei der ersten Installation eines SDKs angegeben haben, gruppiert nach Tool und Version.

Emscripten-Compiler-Konfigurationsdatei (.emscripten)

Die Compiler-Konfigurationsdatei speichert die aktive Konfiguration im Auftrag des emsdk. Die aktive Konfiguration definiert den spezifischen Satz von Tools, die standardmäßig verwendet werden, wenn Emscripten in der Emscripten-Eingabeaufforderung aufgerufen wird.

Die Konfigurationsdatei heißt .emscripten. Sie ist emsdk-spezifisch, so dass sie nicht mit einer Konfigurationsdatei kollidiert, die der Benutzer möglicherweise an anderer Stelle auf seinem System hat.

Die Datei sollte im Allgemeinen nicht direkt aktualisiert werden, es sei denn, Sie bauen Emscripten aus dem Quellcode. Verwenden Sie stattdessen das emsdk, um spezifische SDKs und Tools nach Bedarf zu aktivieren (emsdk activate <tool/SDK>).

Unten sind Beispiele für mögliche .emscripten-Dateien aufgeführt, die von emsdk erstellt wurden. Beachten Sie die verwendeten Variablennamen, um auf die verschiedenen Tools zu verweisen

# .emscripten file from Windows SDK

import os
LLVM_ROOT='C:/Program Files/Emscripten/clang/e1.21.0_64bit'
NODE_JS='C:/Program Files/Emscripten/node/0.10.17_64bit/node.exe'
# .emscripten file from Linux SDK

import os
NODE_JS = 'nodejs'
LLVM_ROOT='/home/ubuntu/emsdk/upstream/bin'

„How-to“-Anleitungen

Die folgenden Themen erklären, wie gängige und erweiterte Wartungsoperationen durchgeführt werden, angefangen bei der Installation des neuesten SDK bis hin zur Installation Ihres eigenen Forks von GitHub.

Hinweis

Die folgenden Beispiele zeigen die Befehle für Linux und macOS. Die Befehle sind unter Windows dieselben, aber Sie müssen ./emsdk durch emsdk ersetzen.

Wie erhalte ich einfach das neueste SDK?

Verwenden Sie das Argument update, um das aktuelle Register der verfügbaren Tools abzurufen, und geben Sie dann das Installationsziel latest an, um das neueste SDK zu erhalten

# Fetch the latest registry of available tools.
./emsdk update

# Download and install the latest SDK tools.
./emsdk install latest

# Set up the compiler configuration to point to the "latest" SDK.
./emsdk activate latest

Wie verwende ich emsdk?

Verwenden Sie ./emsdk help oder einfach ./emsdk, um Informationen über alle verfügbaren Befehle zu erhalten.

Wie überprüfe ich, welche Versionen des SDK und der Tools installiert sind?

Um eine Liste aller aktuell installierten Tools und SDK-Versionen (und aller verfügbaren Tools) zu erhalten, führen Sie den Befehl aus

./emsdk list

Für jedes Tool und SDK, das zur Installation verfügbar ist, wird eine Zeile gedruckt. Für jedes bereits installierte Tool wird der Text INSTALLED angezeigt. Wenn ein Tool/SDK aktuell aktiv ist, wird ein Sternchen (*) daneben angezeigt.

Wie installiere ich eine Tool-/SDK-Version?

Verwenden Sie das Argument install, um ein neues Tool oder eine neue SDK-Version herunterzuladen und zu installieren

./emsdk install <tool/sdk name>

Zum Beispiel:

./emsdk install sdk-1.38.21-64bit

Hinweis

Ein installiertes Tool ist auf dem lokalen Rechner vorhanden, aber nicht unbedingt die aktive Umgebung. Um ein installiertes SDK aktiv zu machen, verwenden Sie den Befehl activate.

Wie entferne ich ein Tool oder ein SDK?

Verwenden Sie das Argument uninstall, um ein bestimmtes Tool oder SDK vom lokalen Computer zu löschen

./emsdk uninstall <tool/sdk name>

Wenn Sie Emscripten vollständig von Ihrem System entfernen möchten, folgen Sie der Anleitung unter Deinstallation des Emscripten SDK.

Wie überprüfe ich Updates für das Emscripten SDK?

Verwenden Sie zuerst den Befehl update, um Paketinformationen für alle neuen Tools und SDK-Versionen abzurufen. Verwenden Sie dann install <tool/sdk name>, um eine neue Version zu installieren

# Fetch the latest registry of available tools.
./emsdk update

# Download and install the specified new version.
./emsdk install <tool/sdk name>

Wie ändere ich die aktuell aktive SDK-Version?

Wechseln Sie zwischen verschiedenen Tools und SDK-Versionen mit dem Befehl activate. Dadurch wird .emscripten so eingerichtet, dass es auf dieses bestimmte Tool verweist

./emsdk activate <tool/sdk name>

# On Linux and macOS, also set the environment variables.
source ./emsdk_env.sh

Hinweis

Unter Linux und macOS schreibt activate die erforderlichen Informationen in die Konfigurationsdatei, kann aber die Umgebungsvariablen im aktuellen Terminal nicht automatisch einrichten. Dazu müssen Sie source ./emsdk_env.sh aufrufen, nachdem Sie activate aufgerufen haben. Die Verwendung von source ist ein Sicherheitsmerkmal von Unix-Shells.

Unter Windows richtet der Aufruf von activate die erforderlichen Pfade und Umgebungsvariablen automatisch ein.

Hinweis

Wenn Sie ./emsdk_env.sh zu Ihrer Standard-Shell-Konfiguration hinzufügen, werden emsdk-Tools (einschließlich der emsdk-Version von Node) zu Ihrem PATH hinzugefügt, und dies könnte die auf Ihrem System verwendete Standardversion von Node beeinflussen.

Wie installiere und aktiviere ich alte Emscripten SDKs und Tools?

Emsdk enthält eine Historie alter Tools und SDKs, die Sie zur Pflege Ihres Migrationspfads verwenden können. Verwenden Sie das Argument list --old, um eine Liste archivierter Tool- und SDK-Versionen zu erhalten, und install <name_of_tool>, um ein bestimmtes Tool zu installieren

# Get list of the old versions of the tool.
./emsdk list --old

# Install the required version.
./emsdk install <name_of_tool>

# Activate required version.
./emsdk activate <name_of_tool>

Wie verfolge ich die neuesten Änderungen am SDK?

Um die neuesten Änderungen mit emsdk auszuprobieren, können Sie eine spezielle Version namens tot (Tip-Of-Tree) installieren und aktivieren, die kontinuierlich erstellt wird und normalerweise Emscripten- und LLVM-Änderungen nur wenige Stunden nach deren Commit enthält

./emsdk install tot
./emsdk activate tot

Wenn Sie alles selbst aus den allerneuesten Quellen erstellen möchten, können Sie sdk-main-64bit verwenden

# Install git (Skip if the system already has it).
./emsdk install git-1.8.3

# Clone+pull the latest emscripten-core/emscripten/main.
./emsdk install sdk-main-64bit

# Set this as the active version.
./emsdk activate sdk-main-64bit

Wie verwende ich meinen eigenen Emscripten-Fork mit dem SDK?

Es ist auch möglich, Ihren eigenen Fork des Emscripten-Repositorys über das SDK zu verwenden. Dies ist nützlich, wenn Sie eigene Änderungen an der Emscripten-Toolchain vornehmen möchten, aber dennoch die SDK-Umgebung und Tools verwenden möchten.

Dazu müssen Sie lediglich die Umgebungsvariable EM_CONFIG so setzen, dass sie auf die emsdk emscripten-Konfiguration zeigt, und dann Ihren eigenen Emscripten-Checkout zuerst in den PATH legen

cd my_emscripten/

# Tell emscripten to use the emsdk config file
export EM_CONFIG=/path/to/emsdk/.emscripten

# Now your version of emscripten will use LLVM and binaryen
# binaries from the currently active version of emsdk.
./emcc