1.3 Emscripten SDK

Emscripten je prevajalnik, ki prevaja C/C++ v WebAssembly (WASM).


Kaj je Emscripten?

Emscripten prevaja:

  • C/C++ kodo → WebAssembly
  • Sistemske API-je → JavaScript ekvivalente
  • OpenGL → WebGL

Zakaj potrebujemo Emscripten?

Za WASM gradnjo OpenSSL, ki teče v Blazor WebAssembly.


Predpogoji


Namestitev v WSL

Korak 1: Odprite WSL

wsl

Korak 2: Kloniranje Emscripten SDK

# V imenik opt (sistemsko)
cd /opt
 
# Kloniranje kot root
sudo git clone https://github.com/emscripten-core/emsdk.git
sudo chown -R $USER:$USER /opt/emsdk

Ali v domačem imeniku (samo za vašega uporabnika):

git clone https://github.com/emscripten-core/emsdk.git ~/emsdk
cd ~/emsdk

Korak 3: Namestitev najnovejše različice

cd /opt/emsdk   # ali ~/emsdk
 
# Namestitev najnovejše stabilne različice
./emsdk install latest
 
# Aktivacija
./emsdk activate latest

Korak 4: Nastavitev okoljskih spremenljivk

Začasno (samo ta seja):

source /opt/emsdk/emsdk_env.sh

Trajno (v .bashrc):

echo 'source /opt/emsdk/emsdk_env.sh' >> ~/.bashrc

Preverjanje

# Emscripten prevajalnik
emcc --version

Pričakovani izpis:

emcc (Emscripten gcc/clang-like replacement) 3.1.xx
# Dodatna orodja
emar --version
emranlib --version

Hitri test

Ustvarite testno datoteko:

cat > hello.c << 'EOF'
#include <stdio.h>
 
int main() {
    printf("Hello from WebAssembly!\n");
    return 0;
}
EOF

Prevajanje v WASM:

emcc hello.c -o hello.js
 
# Izvajanje z Node.js
node hello.js
# Izpis: Hello from WebAssembly!

Za gradnjo OpenSSL

Pri WASM gradnji OpenSSL se uporabljajo ta Emscripten orodja:

Orodje Uporaba
——–———
emcc C prevajalnik (nadomešča gcc)
emar Arhivar (nadomešča ar)
emranlib Ranlib (nadomešča ranlib)
emconfigure Ovoj za ./Configure
emmake Ovoj za make

Primer:

# Namesto:
./Configure linux-x86_64
make
 
# Z Emscripten:
emconfigure ./Configure linux-generic32
emmake make

Posodobitev različice

cd /opt/emsdk   # ali ~/emsdk
 
# Pridobitev posodobitev
git pull
 
# Namestitev najnovejše različice
./emsdk install latest
./emsdk activate latest
 
# Ponovno nalaganje okolja
source ./emsdk_env.sh

Pogoste težave

"emcc: command not found"

Okolje ni naloženo:

source /opt/emsdk/emsdk_env.sh

"Python not found"

Emscripten potrebuje Python 3:

# Ubuntu
sudo apt install python3
 
# Fedora
sudo dnf install python3

Aktivirana stara različica

# Preverjanje aktivne različice
emcc --version
 
# Če je zastarela, ponovno aktivirajte
cd /opt/emsdk
./emsdk activate latest
source ./emsdk_env.sh

Naprej na


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: dne 15.12.2025 ob 21:21