software:webassembly
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| software:webassembly [2021/10/29 20:56] – [emsdk] oga | software:webassembly [2021/10/29 23:06] (現在) – [WASI] oga | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== WebAssembly ====== | ====== WebAssembly ====== | ||
| - | * [[: | + | |
| ===== Emscripten (emsdk) ===== | ===== Emscripten (emsdk) ===== | ||
| + | |||
| + | * [[: | ||
| Emscripten (emsdk) を使うと、通常の | Emscripten (emsdk) を使うと、通常の | ||
| < | < | ||
| - | * emcc | + | * https:// |
| - | * < | + | |
| - | * emar | + | |
| + | | ||
| + | * emcc | ||
| + | | ||
| + | * emar | ||
| emar を使用して lib の生成も可能。 | emar を使用して lib の生成も可能。 | ||
| 行 21: | 行 27: | ||
| <code cpp> | <code cpp> | ||
| #include < | #include < | ||
| - | #include < | + | #if __EMSCRIPTEN__ |
| + | # include < | ||
| + | #endif | ||
| int main() | int main() | ||
| { | { | ||
| + | #if __EMSCRIPTEN__ | ||
| EM_ASM( | EM_ASM( | ||
| FS.mkdir( '/ | FS.mkdir( '/ | ||
| FS.mount( NODEFS, { root: ' | FS.mount( NODEFS, { root: ' | ||
| + | FS.chdir( '/ | ||
| ); | ); | ||
| + | #endif | ||
| - | FILE* fp= fopen( "/cur/test.txt", | + | FILE* fp= fopen( " |
| if( fp ){ | if( fp ){ | ||
| char buffer[128]; | char buffer[128]; | ||
| 行 49: | 行 60: | ||
| $ node a.out.js | $ node a.out.js | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ===== WASI ===== | ||
| + | |||
| + | Emscripten とは異なり、共通の Systemcall を使用した wasm の実行環境があります。 | ||
| + | |||
| + | * https:// | ||
| + | |||
| + | |||
| + | < | ||
| + | $ $WASI_SDK_ROOT/ | ||
| + | $ wasmtime a.out | ||
| + | </ | ||
| + | |||
| + | |||
| + | * 実行するには専用のランタイムが必要です。 | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
software/webassembly.1635508569.txt.gz · 最終更新: by oga
