Emscripten 컴 파일 최적화

7562 단어 전단 개발
컴 파일 프로젝트 원본 링크:https://kripken.github.io/emscripten-site/docs/compiling/Building-Projects.html
1. Emscripten 컴 파일 최 적 화 는 두 단계 로 나 뉜 다.
  • 모든 원본 파일 을 대상 파일 (. bc 파일) 로 컴 파일 하고 LLVM 최적화
  • 대상 파일 을 js 파일 로 컴 파일
  •  
     .emscripten
    
    # Correct. The SAME LLVM and JavaScript options are provided at both levels.

    ... / emcc - O2 a. cpp - o a. bc / / bitcode 로 컴 파일
    ... / emcc - O2b. cpp - o b. bc / / bitcode 로 컴 파일
    . / emcc - O2a. bc b. bc - o procject. js / / bitcode 를 js 로 컴 파일 합 니 다.
     
    두 단계 의 최적화 단 계 를 똑 같이 설정 합 니 다.
     
    3. Js 가 라 이브 러 리 를 사용 하 는 두 가지 방식:
    1.   bitcode    js
    emcc project.bc libstuff.bc -o final.js
     
    2.   bitcodejs
    emcc project.bc libstuff.bc -o allproject.bc
    emcc allproject.bc -o final.js
     

    4. Emscripten 포트
    라 이브 러 리 로 수집 하여 Emscripten 에 이식 합 니 다.Github 주소:https://github.com/emscripten-ports
             emccportsemcc         ,         ,           ,              。

    예 를 들 어 SDL 2 는 ports 로 명령 을 요청 하고 사용 할 수 있 습 니 다 - s USE_SDL = 2 연결.
    emcc tests/sdl2glshader.c -s USE_SDL=2 -s LEGACY_GL_EMULATION=1 -o sdl2.html

     
    동적 라 이브 러 리 링크
    Emscripten 의 목 표 는 가장 빠 르 고 가장 작은 코드 를 만 드 는 것 입 니 다. 이 때문에 전체 프로젝트 에 단일 한 JavaScript 파일 을 만 드 는 데 중심 을 두 고 있 습 니 다.이 때문에 가능 할 때 동적 링크 를 피해 야 한다.
     
    결 성 된 경우,. so 파일 과. bc 파일 은. o 파일 과 같 습 니 다. 즉, 그들 은 LLVM bitcode 를 포함 합 니 다.
    최종 구축 단계 (JavaScript 나 HTML 생 성) 에서 지정 한 동적 라 이브 러 리 를 정적 라 이브 러 리 로 연결 합 니 다.
     
    6. emcc 의 주요 사용 방식 (튜 토리 얼:https://kripken.github.io/emscripten-site/docs/getting_started/Tutorial.html#tutorial)
    # Generate a.out.js from C++. Can also take .ll (LLVM assembly) or .bc (LLVM bitcode) as input
    ./emcc src.cpp
    
    # Generate src.o containing LLVM bitcode.
    ./emcc src.cpp -c
    
    # Generate result.js containing JavaScript.
    ./emcc src.cpp -o result.js
    
    # Generate result.bc containing LLVM bitcode (the suffix matters).
    ./emcc src.cpp -o result.bc
    
    # Generate a.out.js from two C++ sources.
    ./emcc src1.cpp src2.cpp
    
    # Generate src1.o and src2.o, containing LLVM bitcode
    ./emcc src1.cpp src2.cpp -c
    
    # Combine two LLVM bitcode files into a.out.js
    ./emcc src1.o src2.o
    
    # Combine two LLVM bitcode files into another LLVM bitcode file
    ./emcc src1.o src2.o -o combined.o

    좋은 웹페이지 즐겨찾기