Windows下安装Emscripten教程

本文详细介绍了如何从零开始搭建Emscripten环境,包括安装python、git,克隆emsdk项目,配置环境变量,以及验证安装是否成功的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先要安装Emscripten环境需要先安装python和git环境;python和git环境安装简单自行百度下。

安装完成python和git置好环境变量后就可以开始安装Emscripten了,首先需要将emsdk的git项目克隆到本地。

Emscripten SDK的git地址:https://github.com/emscripten-core/emsdk,自行下载;

也可以用cmd执行如下命令:

git clone https://github.com/juj/emsdk.git

当拷贝完成后使用cmd进入emsdk目录中:

cd emsdk

更新emsdk版本,因为使用是的是git所以运行时会提示使用"git pull":

emsdk update
git pull

更新完成后安装最新的emsdk,并配置全局的环境变量:

emsdk install --global latest

当安装完成配置好后执行激活:

emsdk activate latest

配置好激活后需要应用环境变量(该步操作需要每次打开新的cmd都需要执行或者在安装完成将D:\text\emsdk\upstream\emscripten配置到环境变量中就可以):

emsdk_env.bat

如上操作都完成的话可以使用以下方法验证是否安装成功

  • emcc -v 不会报错
  • emcc --clear-cache 不会报错
  • 在emsdk里面创建个hello目录里创建个hello.c
#include <stdio.h>
int main() {
printf("Hello, world!\n");
}

执行:

emcc hello.c -s WASM=1 -o hello.html 

会编出来三个文件

证明配置成功

执行

emrun --no_browser --port 8080 hello.html

成功后在浏览器中输入http://localhost:8080/hello.html就会在控制台看到输出的“Hello, world!”。

 

如果出现

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc8 in position 3: ordinal not in range(128)

UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 214: illegal multibyte sequence

类似错误可能是文件路径有中文建议安装在英文目录环境下

或者按照如下解决方法:

找到emsdk\upstream\emscripten\tools目录下的shared.py文件

找到该段代码

if hasattr(subprocess, "run"):
    ret = subprocess.run(cmd, check=check, input=input, *args, **kw)
    logger.debug(debug_text)
    return ret

  # Python 2 compatibility: Introduce Python 3 subprocess.run-like behavior
  if input is not None:
    kw['stdin'] = subprocess.PIPE
  proc = Popen(cmd, *args, **kw)
  stdout, stderr = proc.communicate(input)
  result = Py2CompletedProcess(cmd, proc.returncode, stdout, stderr)
  if check:
    result.check_returncode()

替换成:

  if hasattr(subprocess, 'run'):
    # Python 3.5 and above only
    kw.setdefault('encoding', 'utf-8')
    result = subprocess.run(cmd, check=check, input=input, *args, **kw)
  else:
    # Python 2 compatibility: Introduce Python 3 subprocess.run-like behavior
    if input is not None:
      kw['stdin'] = subprocess.PIPE
    proc = Popen(cmd, *args, **kw)
    stdout, stderr = proc.communicate(input)
    result = Py2CompletedProcess(cmd, proc.returncode, stdout, stderr)
    if check:
      result.check_returncode()

 

### WebAssembly 安装配置教程 #### 下载 Emscripten SDK 为了开始使用 WebAssembly,获取并设置 Emscripten SDK 是必要的。可以从指定仓库下载该软件开发套件 (SDK),这一步骤确保开发者拥有编译 C/C++ 到 WebAssembly 所需工具链[^3]。 ```bash git clone https://github.com/emscripten-core/emsdk.git cd emsdk ``` #### 初始化和激活最新版本的 Emscripten 编译器 完成克隆操作之后,在终端中进入 `emsdk` 文件夹来初始化以及更新至最新的可用版本: ```bash ./emsdk install latest ./emsdk activate latest ``` 这些命令会自动处理依赖关系,并准备好环境以便立即用于编写、构建基于 WebAssembly 的应用程序。 #### 设置环境变量 为了让系统识别新安装的工具链,需要按照提示将路径添加到 `.profile`, `.bashrc` 或者其他 shell 配置文件里;对于 Windows 用户,则应通过控制面板中的“高级系统设置”对话框来进行相应的更改。每次打开新的终端窗口时都应当运行一次如下脚本以应用变更: ```bash source ./emsdk_env.sh ``` 此过程使得可以在任何地方调用 `emcc`(Emscripten Compiler Frontend) 命令而无需提供完整路径。 #### 测试安装成功与否 最后验证一切正常工作的一个简单方法就是尝试编译官方提供的测试案例之一——hello world程序。如果一切顺利的话,应该能够看到预期的结果输出在浏览器控制台内。 ```cpp #include <iostream> int main() { std::cout << "Hello from WebAssembly!" << std::endl; } ``` 保存以上代码片段为 `main.cpp` 并执行下面这条指令进行编译: ```bash emcc main.cpp -o hello.html ``` 随后只需双击生成出来的 HTML 文件即可在一个支持 WASM 技术标准的新标签页上查看成果了!
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值