LoginSignup
3
1

More than 5 years have passed since last update.

Ubuntuでemscriptenを使う

Last updated at Posted at 2018-08-07

TL;TD;

MDNのガイダンスに従え。
ただCPU資源食いつぶされるから、寝る前にコンパイルして起きたらコンパイル済んでるが理想

解説

emscriptenとはLLVM(低級仮想マシン)を使ってコンパイル言語であるC/C++をJavaScriptに変換できるコンパイラ(GoだろうがRustだろうが変換してくれるはず)。
Webでは低級なものを扱える仕組むとしてWebAssemblyが提案されホットな話題になりつつある。

事前準備

Ubuntuだとgit、cmake、既存のコンパイラ(gcc/clang)、2.7以上のpythonは普通に入っているはずなので事前準備はいらない。
もし無い場合は

$ apt install git cmake gcc clang python
$ apt update
$ apt upgrade

とうてばいい。apt-getしか使えない古いバージョンでもこれで要件は満たせるはず。

ソースコードの入手とコンパイル

書いてあるとおりgitからソースをクローンしてその中にある./emsdkを色々叩くだけ。
ディレクトリ位置はどこでもいいが/use/localに入れるか、もしくはユーザー領域に明示的に作りたい場合は$HOME/localを作っていれるのがわかりやすいと思う。
ガイダンスにあるとおり./emsdk installはかなりの時間を要する。
これはコンパイルを含んでいるためと思われる。手元のCore i5マシン(コア数2/スレッド数4)だとコンパイルが3プロセス走ったのでコンパイル中、マシンがかなり遅く使い物にならなくなったので注意が必要である。

Hello world

ガイダンスどおり

問題点

コンパイルすると長いと思ってパッケージを探すとある

$ apt search emscripten
emscripten/bionic 1.22.1-1build1 amd64
  LLVM-to-JavaScript Compiler

emscripten-doc/bionic,bionic 1.22.1-1build1 all
  LLVM-to-JavaScript Compiler

r-cran-v8/bionic 1.5-1 amd64
  Embedded JavaScript Engine for R

ただこれはバージョンが古くガイダンスのサンプルですら動かない。
原因をググると英語でなんでそんな古いの入れてるのアップデートしろとのやり取りがあったのでパッケージのものを使うのはお薦めしない。

まとめ

emscriptenをインストールするにはフルコンパイルが入るので時間がかかる(マシンパワーも食う)。
デフォルトでパッケージ配布されているものはバージョンが古く使い物にならない。

...誰か最新版配布しないかな

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1