從原始碼建置 Emscripten

自行建置 Emscripten 是使用 emsdk 取得二進制檔的替代方案。

Emscripten 本身是用 Python 和 JavaScript 編寫的,因此不需要編譯。但是,在結帳後,您需要執行各種步驟才能使用它 (例如 npm install)。儲存庫頂層的 bootstrap 腳本會處理這些步驟的執行,如果 emcc 偵測到需要執行 bootstrap,則會產生錯誤。

除了主要的 emscripten 儲存庫之外,您還需要結帳並建置 LLVM 和 Binaryen (如下詳述)。編譯這些項目後,您需要編輯您的 .emscripten 檔案,以指向它們的對應位置。

請使用每個儲存庫的 main 分支,或查看 封裝 指示,以識別特定版本中使用的確切提交。

建置 LLVM

git 儲存庫 建置 LLVM。包含 clang 和 wasm-ld (使用類似 -DLLVM_ENABLE_PROJECTS='lld;clang' 的內容) 和 Wasm 後端 (預設包含;只需不要停用它),並遵循 該專案的指示。例如,類似這樣的內容就可以運作

mkdir build
cd build/
cmake ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS='lld;clang' -DLLVM_TARGETS_TO_BUILD="host;WebAssembly" -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF  # -DLLVM_ENABLE_ASSERTIONS=ON
cmake --build .

然後將環境變數 EM_LLVM_ROOT 設定為 <llvm_src>/build/bin (不需要安裝)。

如果您需要符合 emsdk 版本的 LLVM,請檢閱 emscripten-release 建置和測試腳本。特別是 src/build.py

如需更多詳細資訊,請參閱上游文件。

建置 Binaryen

請參閱 Binaryen 建置指示