Emscipten은 C/C++ 파일을 WebAssembly로 컴파일할 수 있도록 도와주는 LLVM 기반 오픈소스 컴파일러이다. C나 C++를 이용하여 WebAssembly 코드를 작성하면 높은 성능을 필요로 하는 웹 어플리케이션(게임, 그래픽 렌더링) 등에서 유용하게 쓰일 수 있다. 더 자세한 정보는 Emscripten 공식 문서에서 확인할 수 있다.
다운로드 또한 Emscripten 공식 문서를 참고하였다.
// 먼저, git을 통해 emdsk 레퍼지토리를 다운받는다.
$ git clone https://github.com/emscripten-core/emsdk.git
// 다운 받은 디렉토리로 이동한다.
$ cd emsdk
// git pull로 최신 버전으로 업데이트 한다.
$ git pull
// 최신 버전의 emsdk를 설치한다.
$ ./emsdk install latest
// 최신 버전의 emsdk를 활성화한다.
$ ./emsdk activate latest
// 환경 변수를 설정하여 디렉토리 밖에서도 Emscripten 을 실행할 수 있도록 한다.
$ source ./emsdk_env.sh
#include <stdio.h>
int main(int argc, char ** argv) {
printf("Hello World\n");
return 0;
}
설치 이후에, wasm-test
디렉토리를 만들어 위와 같은 내용의 test.c
파일을 만들었다. 그리고, Emscripten
으로 이를 컴파일하고 확인해보면, .js
파일과 .wasm
파일이 생성되는 것을 확인할 수 있었다.
~/wasm-test$ emcc test.c -o test.js
~/wasm-test$ ls
test.c test.js test.wasm
그리고, Node.js
를 통해 컴파일 이후 생성된 .js
파일을 실행시켜보면, 정상적으로 출력되는 것을 확인할 수 있었다.
~/wasm-test$ node test.js
Hello World