[Emscripten] C/C++ 파일을 WebAssembly로 컴파일하기

choehojun·2023년 5월 30일
1

WebAssembly

목록 보기
1/4

Emscripten 이란?

Emscipten은 C/C++ 파일을 WebAssembly로 컴파일할 수 있도록 도와주는 LLVM 기반 오픈소스 컴파일러이다. C나 C++를 이용하여 WebAssembly 코드를 작성하면 높은 성능을 필요로 하는 웹 어플리케이션(게임, 그래픽 렌더링) 등에서 유용하게 쓰일 수 있다. 더 자세한 정보는 Emscripten 공식 문서에서 확인할 수 있다.

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
profile
보안 전공을 희망하는 학부생

0개의 댓글