Emscripten SDK ( emsdk
) 用於執行所有 SDK 維護。您只需要安裝一次 SDK;之後 emsdk 可以執行所有進一步的更新!
使用 emsdk,您可以下載、安裝或移除任何 SDK 或 工具,甚至可以使用 GitHub 上開發中的 最先進版本。若要存取 Windows 上的 emsdk,請先啟動 Emscripten 命令提示字元。大多數操作的形式為 ./emsdk command
。
本文件提供命令語法,以及 一組指南,說明如何執行常見和進階維護操作。
./emsdk [help | list [–old] | update | install <tool/sdk> | uninstall <tool/sdk> | activate <tool/sdk>]
命令 |
描述 |
---|---|
|
列出所有目前的 SDK 和工具及其安裝狀態。使用 |
|
擷取所有可用工具和 SDK 的最新清單 (但不安裝它們)。 |
|
下載並安裝 指定的工具或 SDK。 |
|
從磁碟移除指定的工具或 SDK。 |
|
將指定的工具或 SDK設定為系統環境中的預設工具。在 Linux 上,您還必須使用 |
|
列出所有支援的命令。如果未指定任何命令,則會輸出相同的清單。 |
注意
對於 Linux 和 macOS,命令使用 ./emsdk 呼叫。在 Windows 上,請使用 emsdk。
上面以命令引數形式給定的 <tool/sdk>
是使用 ./emsdk list
(或 ./emsdk list --old
) 列出的目標之一。
請注意,某些工具和 SDK 名稱包含 master 或 main:這些目標用於從 Emscripten main 和 master 分支複製並提取最新版本。
您也可以指定 latest
的目標,以擷取最新的 SDK。
Emscripten 工具鏈包含許多不同的工具,包括 Clang、Emscripten、Java、Git、Node 等。Emsdk 是一個小型套件管理員,用於控制安裝哪些工具,以及從已安裝的工具集中,哪些工具處於活動狀態。
目前可用的 工具 和 SDK 清單是使用 ./emsdk list
列出。這些可以個別安裝 (./emsdk install node-0.10.17-64bit
) 或以群組形式安裝 (./emsdk install node-0.10.17-64bit java-7.45-64bit
)。
SDK 目標是一種方便的機制,用於指定特定 Emscripten 版本所使用的完整工具集。例如,以下兩行是等效的
./emsdk install sdk-upstream-main-64bit
./emsdk install git-1.8.3 clang-upstream-main-64bit node-0.10.17-64bit python-2.7.5.3-64bit java-7.45-64bit llvm-git-main-64bit emscripten-main-64bit
然後,可以將特定的已安裝 SDK (或工具) 設定為作用中,表示在執行 Emscripten 時將使用該 SDK (或工具)。作用中的「編譯器設定」會儲存在 emsdk 目錄中的設定檔 (.emscripten) 中。
注意
emsdk 管理的不同工具和 SDK 儲存在您第一次安裝 SDK 時指定的根資料夾下的不同目錄中,並按工具和版本分組。
編譯器設定檔代表 emsdk 儲存作用中的設定。作用中的設定定義預設情況下,如果在Emscripten 命令提示字元上呼叫 Emscripten,則會使用的特定工具集。
設定檔名為 .emscripten。它是 emsdk 特有的,因此不會與使用者可能在系統其他位置擁有的任何設定檔衝突。
除非您從原始碼建置 Emscripten,否則通常不應直接更新檔案。而是使用 emsdk 視需要啟用特定的 SDK 和工具 (emsdk activate <tool/SDK>
)。
以下是由 emsdk 建立的可能 .emscripten 檔案範例。請注意用於指向不同工具的變數名稱
# .emscripten file from Windows SDK
import os
LLVM_ROOT='C:/Program Files/Emscripten/clang/e1.21.0_64bit'
NODE_JS='C:/Program Files/Emscripten/node/0.10.17_64bit/node.exe'
# .emscripten file from Linux SDK
import os
NODE_JS = 'nodejs'
LLVM_ROOT='/home/ubuntu/emsdk/upstream/bin'
以下主題說明如何執行常見和進階的維護操作,範圍從安裝最新的 SDK 到從 GitHub 安裝您自己的分支。
注意
以下範例顯示 Linux 和 macOS 的命令。這些命令在 Windows 上是相同的,但您需要將 ./emsdk 替換為 emsdk。
使用 update
參數來獲取目前可用的工具註冊表,然後指定 latest
安裝目標以取得最新的 SDK。
# Fetch the latest registry of available tools.
./emsdk update
# Download and install the latest SDK tools.
./emsdk install latest
# Set up the compiler configuration to point to the "latest" SDK.
./emsdk activate latest
使用 ./emsdk help
或直接使用 ./emsdk
來取得所有可用命令的資訊。
若要取得目前已安裝的所有工具和 SDK 版本(以及所有可用工具)的清單,請執行
./emsdk list
將會為每個可供安裝的工具和 SDK 列印一行。文字 INSTALLED
將顯示在每個已安裝的工具旁邊。如果工具/SDK 目前處於啟用狀態,則會在旁邊顯示星號 (*)。
使用 install
參數來下載並安裝新的工具或 SDK 版本。
./emsdk install <tool/sdk name>
例如
./emsdk install sdk-1.38.21-64bit
注意
已安裝的工具會存在於本機上,但不一定處於啟用的環境中。若要啟用已安裝的 SDK,請使用 activate
命令。
使用 uninstall
參數從本機電腦刪除指定的工具或 SDK。
./emsdk uninstall <tool/sdk name>
如果您想從您的系統完全移除 Emscripten,請依照 解除安裝 Emscripten SDK 中的指南操作。
首先使用 update
命令來取得所有新工具和 SDK 版本的套件資訊。然後使用 install <工具/sdk 名稱>
來安裝新版本。
# Fetch the latest registry of available tools.
./emsdk update
# Download and install the specified new version.
./emsdk install <tool/sdk name>
使用 activate 命令在不同的工具和 SDK 版本之間切換。這會設定 .emscripten
以指向該特定工具。
./emsdk activate <tool/sdk name>
# On Linux and macOS, also set the environment variables.
source ./emsdk_env.sh
注意
在 Linux 和 macOS 上,activate
會將所需資訊寫入設定檔,但無法在目前的終端機中自動設定環境變數。要執行此操作,您需要在調用 activate
後調用 source ./emsdk_env.sh
。source
的使用是 Unix shell 的安全功能。
在 Windows 上,調用 activate
會自動設定所需的路徑和環境變數。
注意
如果您將 ./emsdk_env.sh
新增至您的預設 shell 設定,emsdk 工具(包括 emsdk 版本的 node)將會新增至您的 PATH,這可能會影響您系統上使用的預設 node 版本。
Emsdk 包含舊工具和 SDK 的歷史記錄,您可以使用它們來維護您的遷移路徑。使用 list --old
參數來取得封存的工具和 SDK 版本的清單,並使用 install <tool_name>
來安裝特定的工具。
# Get list of the old versions of the tool.
./emsdk list --old
# Install the required version.
./emsdk install <name_of_tool>
# Activate required version.
./emsdk activate <name_of_tool>
要嘗試 emsdk 的最新變更,您可以安裝並啟用一個名為 tot
(Tip-Of-Tree)的特殊版本,該版本會持續建置,並且通常在提交後幾個小時內包含 Emscripten 和 LLVM 的變更。
./emsdk install tot
./emsdk activate tot
如果您想從最新的來源自行建置所有內容,可以使用 sdk-main-64bit
。
# Install git (Skip if the system already has it).
./emsdk install git-1.8.3
# Clone+pull the latest emscripten-core/emscripten/main.
./emsdk install sdk-main-64bit
# Set this as the active version.
./emsdk activate sdk-main-64bit
也可以透過 SDK 使用您自己的 Emscripten 儲存庫分支。如果您想對 Emscripten 工具鏈進行自己的修改,但仍想繼續使用 SDK 環境和工具,這會很有用。
要執行此操作,您需要做的就是將 EM_CONFIG
環境變數設定為指向 emsdk emscripten 設定,然後將您自己的 emscripten 簽出放在 PATH
中。
cd my_emscripten/
# Tell emscripten to use the emsdk config file
export EM_CONFIG=/path/to/emsdk/.emscripten
# Now your version of emscripten will use LLVM and binaryen
# binaries from the currently active version of emsdk.
./emcc