Emscripten 3.0, LLVM을 사용하는 WebAssembly용 빌드 도구 모음

최근에 Emscripten 3.0 컴파일러의 새 버전 릴리스가 발표되었습니다., 저수준 범용 미들웨어 WebAssembly에서 C/C++ 및 LLVM 기반 프론트엔드를 사용할 수 있는 다른 언어로 코드를 컴파일할 수 있는 것이 특징입니다.

이 컴파일의 주요 기능은 웹 브라우저에서 실행되고 Node.js에서 사용하는 JavaScript 프로젝트와의 후속 통합을 위한 것입니다. Js 또는 wasm 런타임과 함께 실행되는 플랫폼 간 독립형 응용 프로그램을 만듭니다.

엠스크립텐 소개

주요 목표 Emscripten 프로젝트의 개발 웹에서 코드를 실행할 수 있는 도구를 만드는 것입니다. 작성된 프로그래밍 언어에 관계없이.

컴파일된 응용 프로그램은 표준 C 및 C++ 라이브러리 호출을 사용할 수 있습니다. (libc, libcxx), C ++ 확장, pthreads 기반 멀티스레딩, POSIX API 및 많은 멀티미디어 라이브러리. Web API 및 JavaScript 코드와의 통합을 위한 API는 별도로 제공됩니다.

엠스크립텐 Canvas를 통한 SDL2 라이브러리 출력 스트리밍 지원, 또한 WebGL을 통해 OpenGL 및 EGL 지원을 제공하여 그래픽 응용 프로그램 및 게임을 WebAssembly로 변환할 수 있습니다.

Emscripten을 사용하여 거의 모든 이식 가능한 C 또는 C ++ 코드 기반을 WebAssembly로 컴파일할 수 있습니다.그래픽을 렌더링하고, 사운드를 재생하고, 파일을 로드 및 처리해야 하는 고성능 게임에서 Qt와 같은 애플리케이션 프레임워크에 이르기까지. Emscripten은 Unreal Engine 4 및 Unity Engine과 같은 상용 코드 기반을 포함하여 매우 긴 실제 코드 기반 목록을 WebAssembly로 변환하는 데 이미 사용되었습니다.

C/C++ 코드를 컴파일하는 것 외에도 Lua, C#, Python, Ruby 및 Perl용 인터프리터와 가상 머신이 브라우저에서 시작되도록 프로젝트를 별도로 개발합니다. Swift, Rust, D, Fortran과 같은 언어에서 사용 가능한 LLVM에 non-Clang 인터페이스를 적용하는 것도 가능합니다.

현저하게 네이티브 런타임과 Emscripten 사이에는 차이점이 있습니다. 즉, 일반적으로 e네이티브 코드를 약간 변경해야 합니다.. 즉, 많은 응용 프로그램은 기본 루프를 정의하는 방법만 변경하고 브라우저/자바스크립트 제한 사항을 수용하도록 파일 처리를 수정하면 됩니다.

일부 코드를 더 쉽게 마이그레이션할 수 있는 제한 사항도 있습니다. 이식성 지침을 읽고 더 많은 노력을 기울여야 할 부분을 결정하십시오.

Emscripten 3.0의 주요 새 기능

제시된 이 새 버전에서 emscripten에 사용된 musl C 라이브러리는 버전 1.2.2로 업데이트되었습니다(버전 1.1.15는 Emscripten 2.x 분기에서 사용됨).

parseTools.js 라이브러리에서 프로젝트에서 주로 사용되는 함수의 일부가 제거되었습니다. removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, IEEEUnHex, Compiletime.isPointerType, CompileTileType, CompiletimeType, Compiletime

동안 shell.html 및 shell_minimal.html 템플릿에서 오류 메시지 출력 emscripten 작업 중에 발생하고 stderr을 통해 애플리케이션에서 발행하는 기본적으로 console.error 대신 console.warn을 사용하도록 변경됩니다.

또한 파일 이름에 사용되는 특정 텍스트 인코딩을 지정하는 기능이 추가되었습니다. 인코딩은 파일 이름을 전달할 때 접미사로 지정할 수 있습니다(예: "a.rsp.utf-8" 또는 "a.rsp.cp1251").

마지막으로 Emscripten에 대해 더 알고 싶다면 해당 프로젝트의 세부 사항을 참조하십시오. 공식 웹 사이트.

그리고 같은 방법으로 Emscripten 사용 방법에 대한 웹 문서를 참조할 수 있습니다. Mozilla 개발자 웹사이트를 추천할 수 있는 참조 사이트입니다. https://developer.mozilla.org.

또한 프로젝트 코드가 MIT 라이선스에 따라 배포된다는 점을 언급하는 것이 중요합니다. 컴파일러는 LLVM 프로젝트의 개발을 사용하고 Binaryen 라이브러리는 WebAssembly 및 최적화를 생성하는 데 사용됩니다. 코드를 확인할 수 있습니다 GitHub의 소스.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.