Emsdk升级到指定版本

查看当前 emsdk版本

进入到 emsdk 目录,执行 emsdk list 查看版本信息。

C:\Users\MG\Desktop\git\emsdk-1.38.30>emsdk list

The *recommended* precompiled SDK download is 2.0.18 (c2ac7520fad29a7937ed60ab6a95b08eb374c7ba).

To install/activate it, use one of:
         latest                  [default (llvm) backend]
         latest-fastcomp         [legacy (fastcomp) backend]

Those are equivalent to installing/activating the following:
         2.0.18
         2.0.18-fastcomp

All recent (non-legacy) installable versions are:
         2.0.18
         2.0.17
         2.0.16
         2.0.15
         2.0.14
         2.0.13
         2.0.12
         2.0.11
         2.0.10
         2.0.9
         2.0.8
         2.0.7
         2.0.6
         2.0.5
         2.0.4
         2.0.3
         2.0.2
         2.0.1
         2.0.0    INSTALLED
         1.40.1
         1.40.0
         1.39.20
         1.39.19
         1.39.18
         1.39.17
         1.39.16
         1.39.15
         1.39.14
         1.39.13
         1.39.12
         1.39.11
         1.39.10
         1.39.9
         1.39.8
         1.39.7
         1.39.6
         1.39.5
         1.39.4
         1.39.3
         1.39.2
         1.39.1
         1.39.0
         1.38.48
         1.38.47
         1.38.46
         1.38.45
         1.38.44
         1.38.43
         1.38.42
         1.38.41
         1.38.40
         1.38.39
         1.38.38
         1.38.37
         1.38.36
         1.38.35
         1.38.34
         1.38.33

The additional following precompiled SDKs are also available for download:
         sdk-releases-upstream-f5c45e60392b82f603e3a8039c62db294fab02d2-64bit
         sdk-releases-upstream-c2ac7520fad29a7937ed60ab6a95b08eb374c7ba-64bit
         sdk-releases-fastcomp-edf24e7233e0def312a08cc8dcec63a461155da1-64bit
         sdk-releases-fastcomp-536568644fd67d53778f6111fdd5f64ad3f4c539-64bit
         sdk-fastcomp-1.38.30-64bit
         sdk-fastcomp-1.38.31-64bit

The following SDKs can be compiled from source:
         sdk-upstream-main-64bit
         sdk-fastcomp-tag-1.38.30-64bit
         sdk-fastcomp-tag-1.38.31-64bit

The following precompiled tool packages are available for download:
           releases-upstream-f5c45e60392b82f603e3a8039c62db294fab02d2-64bit
           releases-upstream-c2ac7520fad29a7937ed60ab6a95b08eb374c7ba-64bit
           releases-fastcomp-edf24e7233e0def312a08cc8dcec63a461155da1-64bit
           releases-fastcomp-536568644fd67d53778f6111fdd5f64ad3f4c539-64bit
           fastcomp-clang-e1.38.30-64bit
           fastcomp-clang-e1.38.31-64bit
    (*)    node-14.15.5-64bit           INSTALLED
    (*)    python-3.9.2-1-64bit         INSTALLED
    (*)    java-8.152-64bit             INSTALLED
           emscripten-1.38.30
           emscripten-1.38.31
           gnu-2.5.4
           mingw-7.1.0-64bit

The following tools can be compiled from source:
           llvm-git-main-32bit
           llvm-git-main-64bit
           clang-tag-e1.38.30-32bit
           clang-tag-e1.38.31-32bit
           fastcomp-clang-tag-e1.38.30-64bit
           fastcomp-clang-tag-e1.38.31-64bit
           fastcomp-clang-master-32bit
           fastcomp-clang-master-64bit
           emscripten-tag-1.38.30-32bit
           emscripten-tag-1.38.31-32bit
           emscripten-tag-1.38.30-64bit
           emscripten-tag-1.38.31-64bit
           binaryen-tag-1.38.30-32bit
           binaryen-tag-1.38.31-32bit
           binaryen-tag-1.38.30-64bit
           binaryen-tag-1.38.31-64bit
           emscripten-main-32bit
           emscripten-main-64bit
           binaryen-main-32bit
           binaryen-main-64bit
           ninja-git-release-64bit
           ccache-git-emscripten-64bit

Items marked with * are activated for the current user.
Items marked with (*) are selected for use, but your current shell environment is not configured to use them. Type "emsdk_env.bat" to set up your current shell to use them, or call "emsdk activate --permanent <name_of_sdk>" to permanently activate them.

To access the historical archived versions, type 'emsdk list --old'

Run "git pull" to pull in the latest list.

C:\Users\MG\Desktop\git\emsdk-1.38.30>

从github安装指定版emsdk

C:\Users\MG\Desktop\git>git clone https://github.com/emscripten-core/emsdk.git
Cloning into 'emsdk'...
remote: Enumerating objects: 3281, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 3281 (delta 2), reused 1 (delta 0), pack-reused 3270
Receiving objects: 100% (3281/3281), 1.90 MiB | 220.00 KiB/s, done.
Resolving deltas: 100% (2138/2138), done.

C:\Users\MG\Desktop\git>cd emsdk
C:\Users\MG\Desktop\git\emsdk>emsdk install 3.1.10
Resolving SDK version '3.1.10' to 'sdk-releases-upstream-8bd05c7221b4ce34d4bedec40b672d94e681a765-64bit'
Installing SDK 'sdk-releases-upstream-8bd05c7221b4ce34d4bedec40b672d94e681a765-64bit'..
Installing tool 'node-14.18.2-64bit'..
Downloading: C:/Users/MG/Desktop/git/emsdk/zips/node-v14.18.2-win-x64.zip from https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/node-v14.18.2-win-x64.zip, 30570907 Bytes
Unpacking 'C:/Users/MG/Desktop/git/emsdk/zips/node-v14.18.2-win-x64.zip' to 'C:/Users/MG/Desktop/git/emsdk/node/14.18.2_64bit'
Done installing tool 'node-14.18.2-64bit'.
Installing tool 'python-3.9.2-nuget-64bit'..
Downloading: C:/Users/MG/Desktop/git/emsdk/zips/python-3.9.2-4-amd64+pywin32.zip from https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/python-3.9.2-4-amd64+pywin32.zip, 14413267 Bytes
Unpacking 'C:/Users/MG/Desktop/git/emsdk/zips/python-3.9.2-4-amd64+pywin32.zip' to 'C:/Users/MG/Desktop/git/emsdk/python/3.9.2-nuget_64bit'
Done installing tool 'python-3.9.2-nuget-64bit'.
Installing tool 'java-8.152-64bit'..
Downloading: C:/Users/MG/Desktop/git/emsdk/zips/portable_jre_8_update_152_64bit.zip from https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/portable_jre_8_update_152_64bit.zip, 69241499 Bytes
Unpacking 'C:/Users/MG/Desktop/git/emsdk/zips/portable_jre_8_update_152_64bit.zip' to 'C:/Users/MG/Desktop/git/emsdk/java/8.152_64bit'
Done installing tool 'java-8.152-64bit'.
Installing tool 'releases-upstream-8bd05c7221b4ce34d4bedec40b672d94e681a765-64bit'..
Downloading: C:/Users/MG/Desktop/git/emsdk/zips/8bd05c7221b4ce34d4bedec40b672d94e681a765-wasm-binaries.zip from https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/8bd05c7221b4ce34d4bedec40b672d94e681a765/wasm-binaries.zip, 412938927 Bytes
Unpacking 'C:/Users/MG/Desktop/git/emsdk/zips/8bd05c7221b4ce34d4bedec40b672d94e681a765-wasm-binaries.zip' to 'C:/Users/MG/Desktop/git/emsdk/upstream'
Done installing tool 'releases-upstream-8bd05c7221b4ce34d4bedec40b672d94e681a765-64bit'.
Done installing SDK 'sdk-releases-upstream-8bd05c7221b4ce34d4bedec40b672d94e681a765-64bit'.

C:\Users\MG\Desktop\git\emsdk>

激活emsdk,如【3.1.10】

emsdk activate 3.1.10
C:\Users\MG\Desktop\git\emsdk>emsdk activate 3.1.10
Resolving SDK version '3.1.10' to 'sdk-releases-upstream-8bd05c7221b4ce34d4bedec40b672d94e681a765-64bit'
Setting the following tools as active:
   node-14.18.2-64bit
   python-3.9.2-nuget-64bit
   java-8.152-64bit
   releases-upstream-8bd05c7221b4ce34d4bedec40b672d94e681a765-64bit

Adding directories to PATH:
PATH += C:\Users\MG\Desktop\git\emsdk
PATH += C:\Users\MG\Desktop\git\emsdk\node\14.18.2_64bit\bin

Setting environment variables:
PATH = C:\Users\MG\Desktop\git\emsdk;C:\Users\MG\Desktop\git\emsdk\node\14.18.2_64bit\bin;C:\Users\MG\Desktop\git\emsdk\upstream\emscripten;C:\Program Files\Java\jdk1.8.0_321\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\PuTTY\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files\OpenVPN\bin;C:\Program Files\MySQL\MySQL Server 5.7\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Git\cmd;C:\Go\bin;C:\Users\MG\Desktop\gRPC+protoBuf+CMake\cmake-3.17.2-win64-x64\cmake-3.17.2-win64-x64\bin;C:\SVN\kvnkcloudsrc\nkcldrun\dll;C:\cppunit\lib;C:\SVN\kvnkcloudsrc\nkcldrun\bin;C:\CMake3.15.5\bin;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\Python37\scripts;C:\nasm-2.15;C:\SVN\kvnkcloudsrc\nkcld3\grpc\windows\dll;C:\Python37;C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.20.27508\bin\Hostx64\x64;C:\Program Files\Pandoc\;C:\wabt\bin;C:\SVN\kvnkcloudsrc\nkcldrun\sysdll\Qt\msvc2017_64\bin;C:\SVN\kvnkcloudsrc\nkcldrun\sysdll\Qt\msvc2017_64\lib;C:\SVN\kvnkcloudsrc\nkcldrun\sysdll;C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\;C:\NK6000\NK6000EN_L7\dll;C:\NK6000\NK6000EN_L7\bin;C:\ProgramData\chocolatey\bin;C:\NK6000\NK6000EN_L7\sysdll;C:\BCGSoft\Bin;C:\Program Files\Cppcheck;C:\SVN\kvnkcloudsrc\nkcld3\openssl\bin;C:\Users\MG\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\CVSNT\;;C:\Users\MG\AppData\Local\Programs\Microsoft VS Code\bin;C:\PyCharm\bin;C:\PyCharm Community Edition\bin;C:\Users\MG\AppData\Local\Pandoc\
EMSDK = C:/Users/MG/Desktop/git/emsdk
EM_CONFIG = C:\Users\MG\Desktop\git\emsdk\.emscripten
EMSDK_NODE = C:\Users\MG\Desktop\git\emsdk\node\14.18.2_64bit\bin\node.exe
EMSDK_PYTHON = C:\Users\MG\Desktop\git\emsdk\python\3.9.2-nuget_64bit\python.exe
JAVA_HOME = C:\Users\MG\Desktop\git\emsdk\java\8.152_64bit
Clearing existing environment variable: EMSDK_PY
The changes made to environment variables only apply to the currently running shell instance. Use the 'emsdk_env.bat' to re-enter this environment later, or if you'd like to register this environment permanently, rerun this command with the option --permanent.

C:\Users\MG\Desktop\git\emsdk>

查看emcc版本

emcc -v
C:\Users\MG\Desktop>emcc -v
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.10 (c3fe57af0504fe24fc4ba697feb8c204f3c80022)
clang version 15.0.0 (https://github.com/llvm/llvm-project 8bc29d14273b05b05d5a56e34c07948dc2c770d3)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: C:\Users\MG\Desktop\git\emsdk\upstream\bin

C:\Users\MG\Desktop>

验证升级后的emsdk

创建 hello.cc 文件:

#include <iostream>

int main()
{
    std::cout <<"Hello World!" << std::endl;
}

编译hello.cc工程:

emcc hello.cc -o hello.html

生成如下文件:

hello.cc  hello.html  hello.js  hello.wasm

运行程序:

emrun --no_browser --port:8090 hello.html

打开浏览器,输入: http://127.0.0.1:8090 回车,并选择 hello.html 文件即可。

### 安装 Emscripten (emcc) 编译器 要在 Ubuntu 系统中安装 Emscripten (emcc),需要按照以下方法操作: #### 准备工作 在开始之前,需确认系统已更新至最新状态并安装必要的依赖项。执行以下命令来完成系统的更新以及基础开发工具的安装: ```bash sudo apt update sudo apt upgrade sudo apt install build-essential curl wget tar unzip git cmake default-jre python3 ``` 上述命令会安装 `build-essential`(构建必需的基础工具)、`curl` 和 `wget`(用于下载文件)、`tar` 和 `unzip`(解压工具)、`git`(版本控制工具),还有 `cmake` 和 `default-jre`(Java 运行环境)。此外还特别指定了 Python 的安装[^4]。 对于某些较新的 Ubuntu 版本,默认可能只预装了 Python 3 而未包含 Python 2。因此建议验证当前是否有可用的 Python 解释器,并通过适当方式确保其存在。例如,在 Ubuntu 20 中可运行以下命令以安装 Python 3 并设置默认链接指向它: ```bash sudo apt-get install python3 ``` 接着检查 Python 是否正确配置完毕及其具体版本号: ```bash python3 --version ``` 如果一切正常,则继续下一步;否则依据错误提示调整相应设置直至满足条件为止[^3]。 #### 获取与初始化 emsdk Emscripten 提供了一个名为 **emsdk** 的管理脚本来简化整个流程。下面展示如何获取该 SDK 及后续处理步骤。 1. 创建一个目录专门存放 Emscripten 工具链相关资料,比如命名为 `~/tools/emscripten/emsdk_portable` : ```bash mkdir -p ~/tools/emscripten/ cd ~/tools/emcripten/ ``` 2. 下载最新的 emsdk指定位置: ```bash git clone https://github.com/emscripten-core/emsdk.git . ``` 3. 启动 emsdk 初始化过程,这一步将自动拉取所有必要组件包括但不限于 clang 前端编译器等资源到本地机器上: ```bash ./emsdk install latest ./emsdk activate latest source ./emsdk_env.sh ``` 这些指令依次完成了三个重要动作——即“install”代表实际抓取目标数据,“activate”意味着激活选定版本成为全局默认选项之一,“source”则是加载新定义好的路径变量使得本次 shell session 即刻生效从而可以直接调用像 `emcc` 那样的核心实用程序[^2]。 至此,你应该已经在你的 Ubuntu 上成功设置了 Emscripten 环境,并能够利用其中提供的交叉编译能力针对 WebAssembly 或 asm.js 输出格式进行项目开发啦! ### 注意事项 为了保证最佳兼容性和稳定性,请始终遵循官方文档给出的具体指导方针来进行维护升级等工作。另外也要留意不同发行版之间可能存在细微差异之处以免造成不必要的麻烦哦~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值