Emscripten ist ein Compiler, der C/C++ zu WebAssembly (WASM) kompiliert.
Emscripten übersetzt:
Wofür brauchen wir Emscripten?
Für den WASM-Build von OpenSSL, der in Blazor WebAssembly läuft.
wsl
# In das opt-Verzeichnis (systemweit) cd /opt # Als root klonen sudo git clone https://github.com/emscripten-core/emsdk.git sudo chown -R $USER:$USER /opt/emsdk
Oder im Home-Verzeichnis (nur für Ihren Benutzer):
git clone https://github.com/emscripten-core/emsdk.git ~/emsdk cd ~/emsdk
cd /opt/emsdk # oder ~/emsdk # Neueste stabile Version installieren ./emsdk install latest # Aktivieren ./emsdk activate latest
Temporär (nur diese Session):
source /opt/emsdk/emsdk_env.sh
Permanent (in .bashrc):
echo 'source /opt/emsdk/emsdk_env.sh' >> ~/.bashrc
# Emscripten Compiler emcc --version
Erwartete Ausgabe:
emcc (Emscripten gcc/clang-like replacement) 3.1.xx
# Weitere Tools emar --version emranlib --version
Erstellen Sie eine Test-Datei:
cat > hello.c << 'EOF' #include <stdio.h> int main() { printf("Hello from WebAssembly!\n"); return 0; } EOF
Kompilieren zu WASM:
emcc hello.c -o hello.js # Ausführen mit Node.js node hello.js # Ausgabe: Hello from WebAssembly!
Beim WASM-Build von OpenSSL werden diese Emscripten-Tools verwendet:
| Tool | Verwendung |
| —— | ———— |
emcc | C-Compiler (ersetzt gcc) |
emar | Archiver (ersetzt ar) |
emranlib | Ranlib (ersetzt ranlib) |
emconfigure | Wrapper für ./Configure |
emmake | Wrapper für make |
Beispiel:
# Statt: ./Configure linux-x86_64 make # Mit Emscripten: emconfigure ./Configure linux-generic32 emmake make
cd /opt/emsdk # oder ~/emsdk # Updates holen git pull # Neueste Version installieren ./emsdk install latest ./emsdk activate latest # Environment neu laden source ./emsdk_env.sh
Environment nicht geladen:
source /opt/emsdk/emsdk_env.sh
Emscripten braucht Python 3:
# Ubuntu sudo apt install python3 # Fedora sudo dnf install python3
# Aktive Version prüfen emcc --version # Falls veraltet, neu aktivieren cd /opt/emsdk ./emsdk activate latest source ./emsdk_env.sh
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional