Emscripten安装并配置环境变量

news2024/12/26 23:40:58

前言

Emscripten官网

官网有安装教程,但有些细节没有讲清楚,本文会很详细的讲解每一步。

一、下载 emsdk 包

emsdk – github地址

可以使用 git 去拉取,不过可能会超时拉取失败。

git clone https://github.com/emscripten-core/emsdk.git

所以可以去 github 上下载 zip 包,解压后包名为 emsdk-main,手动改成 emsdk 即可,解压后可以将包放到D盘根目录下,其它地方也随意,没有要求,本文后面按照放入D盘根目录介绍。

在这里插入图片描述

二、安装

1. 在终端输入命令进入 emsdk 文件夹

打开终端,可以使用 windows + R 输入 cmd 打开,输入 D: 回车,再输入 cd emsdk 进入emsdk 文件夹。

在这里插入图片描述
在这里插入图片描述

2. 安装 Python

必须先安装 Python,Emscripten 运行依赖于 Python 环境,且 Python 版本必须大于3.6。

Python官网下载地址

在这里插入图片描述
下载完成后双击安装,按照下面的步骤一遍一遍进行。

  1. 选择自动添加环境变量,然后安装
    在这里插入图片描述

  2. 下一步

  3. 选中这5个,一般为前5个
    在这里插入图片描述

  4. 不设置path长度限制
    在这里插入图片描述

  5. 在终端输入确认 Python 是否安装成功,显示版本号表示已安装成功。
    在这里插入图片描述

3. 输入指令完成配置

第一步

输入 ./emsdk install latest 命令,如果是 windows 系统则输入 emsdk install latest 命令。如果安装失败,则重新安装一次,网络不好可能会失败。

在这里插入图片描述

第二步

输入 ./emsdk activate latest 命令,如果是 windows 系统则输入 emsdk activate latest 命令。这里报错提示需要安装 Python-3.9-2-nuget-64bit版本,不用管它。

在这里插入图片描述

第三步
输入 source ./emsdk_env.sh 命令,如果是 windows 系统则输入 emsdk_env.bat 命令。输入这条命令后会提示你配置相应的环境变量,记住这些环境变量,必须和提示配置的一致才行。

在这里插入图片描述

三、配置环境变量

Setting up EMSDK environment (suppress these messages with EMSDK_QUIET=1)
Adding directories to PATH:
PATH += D:\emsdk

Setting environment variables:
PATH = D:\emsdk;C:\Program Files\Python311\Scripts\;C:\Program Files\Python311\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\nodejs\;C:\Program Files (x86)\Tencent\微信web开发者工具\dll;;C:\Pr;gram Files\Git\cmd;C:\Program Files\Git\cmd;C:\Users\mr_zx\AppData\Local\Microsoft\WindowsApps;C:\Users\mr_zx\AppData\Roaming\npm;C:\Users\mr_zx\AppData\Local\Programs\Microsoft VS Code\bin
EMSDK = D:/emsdk
Clearing existing environment variable: EMSDK_PY

因为版本和系统不一致,所以输入相同的命令,显示要配置的环境变量不一定完全相同,这里需要根据自己输入命令后的提示进行配置,下面的图片仅为参考。

path 变量本来就有,只需要在里面追加即可。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

配置完成后输入 emcc 测试是否配置成功,如果不显示 “‘emcc’ 不是内部或外部命令,也不是可运行的程序”,则说明配置成功。

在这里插入图片描述

最后

到这里 Emscripten 已经成功安装完成了,配置完 PATH 后即可在全局调用此命令,接下来就可以将 C 代码编译成 JS 和 wasm 文件了。

本文仅仅是讲解 Emscripten 安装过程,有关编译过程及编译后如何使用 JS 文件,限于篇幅,会在后面更新另一篇博客去详细描述。

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/995276.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电子信息工程专业课复习知识点总结:(一)电路分析基础

文章目录 第一章:电路的基本概念和电路定律第二章:电阻电路的等效变换第三章:电阻电路的一般分析方法第四章:电路定理1.叠加定理2.替代定理3.戴维南定律4.诺顿定律5.最大功率传输定理6.特勒根定理7.互易定理8.对偶定理 第七章 储能…

常用调优命令及各种 OOM 的应对策略【JVM调优】

文章目录 1. 常见的调优命令2. 常见的性能调优3. 常用的调优工具4. 各种 OOM 的应对策略5. 配置垃圾收集器6. CPU 占用过高 1. 常见的调优命令 ① jps:显示所有虚拟机进程; ② jstack:生成当前线程快照; ③ jmap:生成…

基于SSM的在线云音乐系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Linux内核分析与应用3-进程管理

本系列是对 陈莉君 老师 Linux 内核分析与应用[1] 的学习与记录。讲的非常之好,推荐观看 留此记录,蜻蜓点水,可作抛砖引玉 3.1 进程概述 一个程序通过编译器将其编译成汇编程序,经过汇编器将其汇编成目标代码,通过链接器形成可执行文件a.out或者elf格式,…

Kali2022.3虚拟机编译AOSP(从Kali安装到完成Aosp编译详细记录)

一.前言 测试的硬件环境(轻薄本):cpu:Amd r5 4600u,内存:16g,外接固态硬盘盒子。测试(下载和编译Android10)结果:下载时长为0.5-1h,编译时长接近5h;虚拟机环境:VMware Workstation …

Stream流用法详解

文章目录 🐒个人主页🏅JavaSE系列专栏📖前言:🎀什么是Stream流?🧸流的概念 🐕如何获取流🐕流的操作🏅中间操作(返回类型都是流)filter…

【strcat函数和strncat函数的对比与模拟实现】

strcat函数和strncat函数的对比与模拟实现 1.strcat函数的介绍 资源来源于cplusplus网站 它的作用是: 将源字符串的副本追加到目标字符串。目标中的结束空字符被源的第一个字符覆盖,并且在由目标中的两个字符串串联形成的新字符串的末尾包含一个空字符…

数据结构之单链表(c++(c语言)通用版)

我们创建一个长度为n的链表时,可以采取头插法创建或者尾插法创建,本篇博客我们采取头插法来创建,(作者只学了头插,尾插等以后来补qwq,补上喽)。 头插原理 我们先来画图来看看头插的创建形式把&#xff0c…

《python趣味工具》——酷炫二维码(2):批量定制合适的二维码

今天,我们将学习如何从Excel中提取相应的内容然后批量生成相应的二维码。 文章目录 一、Excel的基本操作:1. Excel的基本结构:2. 安装xlrd模块:3. 读取指定工作表:4. 读取指定内容:Tip:切片读取&#xff1a…

线性代数的学习和整理19,特征值,特征向量,以及引入的正交化矩阵概念(草稿)

目录 1 什么是特征值和特征向量? 1.1 特征值和特征向量这2个概念先放后 1.2 直观定义 1.3 严格定义 2 如何求特征值和特征向量 2.1 方法1:结合图形看,直观方法求 2.1.1 单位矩阵的特征值和特征向量 2.1.2 旋转矩阵 2.2 根据严格定义…

buuctf crypto 【RSA2】解题记录

1.打开文件 2.写脚本 3.16进制转字符串

Ardupilot — AP_OpticalFlow代码梳理

文章目录 前言 1 Copter.cpp 1.1 void Copter::setup() 2 system.cpp 2.1 void Copter::init_ardupilot() 3 sensors.cpp 3.1 void Copter::init_optflow() 3.2 对象optflow说明 4 OpticalFlow.cpp 4.1 void OpticalFlow::init(uint32_t log_bit) 5 AP_OpticalFlow_…

十三、函数式编程(1)

本章概要 新旧对比Lambda 表达式 递归 函数式编程语言操纵代码片段就像操作数据一样容易。 虽然 Java 不是函数式语言,但 Java 8 Lambda 表达式和方法引用 (Method References) 允许你以函数式编程。 在计算机时代早期,内存是稀缺和昂贵的。几乎每个人…

手写Spring:第20章-事务处理

文章目录 一、目标:事务处理二、设计:事务处理2.1 事务单元测试2.2 事务设计 三、实现:事务处理3.1 工程结构3.2 事务管理的核心类图3.3 定义事务注解3.3.1 定义事务注解3.3.2 定义事务接口3.3.3 默认事务定义实现类3.3.4 委托事务定义实现类…

Java 多线程系列Ⅵ(并发编程的六大组件)

JUC 组件 前言一、Callable二、ReentrantLock三、Atomic 原子类四、线程池五、Semaphore六、CountDownLatch 前言 JUC(Java.util.concurrent)是 Java 标准库中的一个包,它提供了一组并发编程工具,本篇文章就介绍几组常见的 JUC 组…

win10自带wifi共享功能

1、按下【wini】组合键打开windows设置,点击【网络和internet】; 2、按照下图,打开个移动热点,设置名称、密码。

Blender--》页面布局及基本操作讲解

接下来我会在three.js专栏中分享关于3D建模知识的文章,如果学习three朋友并且想了解和学习3D建模,欢迎关注本专栏,关于这款3D建模软件blender的安装,我在前面的文章已经讲解过了,如果不了解的朋友可以去考考古&#xf…

DeepinV20安装MSJDK17

装什么版本的JDK https://learn.microsoft.com/zh-cn/java/openjdk/download#openjdk-17 通常来讲,选择最适应自己应用程序的版本,例如最新开发的程序基本需要运行在jdk17了,又或者前几年的java程序基本都是jdk11,再旧一点的jdk8。尽可能选…

【C++深入浅出】类和对象中篇(六种默认成员函数、运算符重载)

目录 一. 前言 二. 默认成员函数 三. 构造函数 3.1 概念 3.2 特性 四. 析构函数 4.1 概念 4.2 特性 五. 拷贝构造函数 5.1 概念 5.2 特性 六. 运算符重载 6.1 引入 6.2 概念 6.3 注意事项 6.4 重载示例 6.5 赋值运算符重载 6.6 前置和后置运算符重载 七. c…

【Rust日报】2023-09-07 Servo 项目将加入欧洲 Linux 基金会

Servo 项目将加入欧洲 Linux 基金会 Servo 项目由 Mozilla Research 于 2012 年创建,是除编译器本身之外的首个主要 Rust 代码库,自此成为实验性网络引擎设计的标志。Servo 的主要组件已被集成到 Firefox 网络浏览器中,其若干解析器和其他底层…