ユーザ用ツール

サイト用ツール


software:webassembly

文書の過去の版を表示しています。


WebAssembly

Emscripten (emsdk)

Emscripten (emsdk) を使うと、通常の C++ Toolchain の代わりとしてビルドができるようになります。

  • command
    • emcc
    • em++
    • emar

emar を使用して lib の生成も可能。

Emscripten は JavaScript による独自のランタイムを使用し、ブラウザ上での実行を可能にしています。 実行コードの事前コンパイルと最適化のために WebAssembly を使用します。

#include <stdio.h>
#if __EMSCRIPTEN__
# include <emscripten.h>
#endif
 
int main()
{
#if __EMSCRIPTEN__
    EM_ASM(
        FS.mkdir( '/cur' );
        FS.mount( NODEFS, { root: '.' }, '/cur' );
    );
#endif
 
    FILE*   fp= fopen( "/cur/test.txt", "r" );
    if( fp ){
        char    buffer[128];
        fread( buffer, 10, 1, fp );
        buffer[10]=  '\0';
        printf( "[%s]\n", buffer );
        fclose( fp );
    }
 
    return  0;
}
$ emcc main.cpp -O3 -c
$ emcc main.o -lnodefs.js
$ node a.out.js
software/webassembly.1635509455.txt.gz · 最終更新: 2021/10/29 21:10 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki