Emscripten编译器安装教程,亲测成功编译出第一个WebAssembly
javascript 这门语言的性能无法与原生的C/C++代码相媲美,为了进一步提高网页的性能,业界推出了WebAssembly技术:将C语言编译成了浏览器可以执行的wasm文件。WebAssembly不仅提高了网页的性能,而且还可以完成原来javascript无法实现的功能。
要想使用WebAssembly,就需要通过Emscripten编译器将C语言编译成wasm文件,但是官方安装教程不够细致,可能会让开发者造成困惑而导致安装失败(本宝宝就失败了好多次,所以觉得有必要写本文)。
PS:本文是windows
系统Emscripten编译器安装教程
步骤一:克隆emsdk仓库
# 克隆emsdk仓库,并执行安装
git clone https://github.com/juj/emsdk.git
步骤二:安装
# 定位到emsdk文件夹
cd emsdk# 执行 update
emsdk update# 安装各种工具
emsdk install latest
在执行emsdk install latest
会下载安装很多东西,时间会有些久,最后一个需要下载的东西(emscripten-x.xx.xx.zip
)是从github下载的,经常会下载失败。
好在第一次执行 emsdk install latest 成功下载并安装的东西,当你再次执行 emsdk install latest 的时候并不需要重新下载安装,所以如果你发现emscripten-x.xx.xx.zip
下载失败,可以复制命令行中的下载地址,使用迅雷先下载好,按照命令行中的保存路径,事先将.zip放到那个路径下面,事情就解决了。
# 生成 ~/.emscripten 文件,激活配置
emsdk activate latest
最后,双击emsdk目录下的emsdk_env.bat
文件配置环境变量,不过我虽然双击了,但是环境变量并没有被设置。如何判断环境变量是否配置成功呢?可以使用命令行工具在非emsdk目录下,执行emcc -v
,看看结果是不是类似下面:
C:\Users\Administrator>emcc -v
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.37.36
clang version 5.0.0 (emscripten 1.37.36 : 1.37.36)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: D:\Application\emsdk\clang\e1.37.36_64bit
INFO:root:(Emscripten: Running sanity checks)C:\Users\Administrator>
如果是,那么恭喜你已经安装成功了。可以忽略步骤三了。
步骤三:配置环境变量
打开刚才克隆下来的emsdk文件夹,双击执行emcmdprompt.bat
文件,可以看到如下内容(我把emsdk克隆到了D:\Application\下,所以下面有很多D:\Application\,实际情况以你们克隆保存目录为准):
Adding directories to PATH:
PATH += D:\Application\emsdk\clang\e1.37.36_64bit
PATH += D:\Application\emsdk\node\8.9.1_64bit\bin
PATH += D:\Application\emsdk\python\2.7.13.1_64bit\python-2.7.13.amd64
PATH += D:\Application\emsdk\java\8.152_64bit\bin
PATH += D:\Application\emsdk\emscripten\1.37.36Setting environment variables:
EMSDK = D:/Application/emsdk
BINARYEN_ROOT = D:\Application\emsdk\clang\e1.37.36_64bit\binaryen
JAVA_HOME = D:\Application\emsdk\java\8.152_64bit
EMSCRIPTEN = D:\Application\emsdk\emscripten\1.37.36
这堆东西用来让你配置环境变量的,右键我的电脑 -> 属性 -> 高级系统设置 -> 环境变量,在系统变量的Path值中添加:
D:\Application\emsdk\clang\e1.37.36_64bit;D:\Application\emsdk\node\8.9.1_64bit\bin;D:\Application\emsdk\python\2.7.13.1_64bit\python-2.7.13.amd64;D:\Application\emsdk\java\8.152_64bit\bin;D:\Application\emsdk\emscripten\1.37.36
新建系统变量EMSDK,值设置为D:/Application/emsdk
新建系统变量BINARYEN_ROOT,值设置为D:\Application\emsdk\clang\e1.37.36_64bit\binaryen
新建系统变量JAVA_HOME,值设置为D:\Application\emsdk\java\8.152_64bit
新建系统变量EMSCRIPTEN,值设置为D:\Application\emsdk\emscripten\1.37.36
点击确定退出设置,尝试在其他非emsdk目录执行 emcc -v
检查是否配置成功。
步骤四:编译第一个wasm文件
在其他文件夹新建一个 index.c 文件(我参考了这篇文章中代码:让C代码在浏览器中运行):
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <emscripten/emscripten.h>
// 一旦WASM模块被加载,main()中的代码就会执行
int main(int argc, char ** argv) {printf("WebAssembly module loaded\n");
}
// 返回1-6之间的一随机数
int EMSCRIPTEN_KEEPALIVE roll_dice() {srand ( time(NULL) );return rand() % 6 + 1;
}
然后用命令行工具定位到这个文件夹,执行:
emcc index.c -s WASM=1 -O3 -o index.js
等待片刻之后,你就能够看见生成了两个新文件:
index.js
index.wasm
你可以用html引入这个index.js试试(index.wasm必须和index.js在同一路径下)
end.
Emscripten编译器安装教程,亲测成功编译出第一个WebAssembly相关推荐
- geonode geoserver win10 安装教程(亲测)
geonode geoserver win10 安装教程(亲测) 目录 0. geonode简介 1.相关链接 2.安装步骤 3. 遇到的坑 0. geonode简介 GeoNode 是一个地理空间 ...
- WebODM win10安装教程(亲测)
WebODM win10安装教程(亲测) 目录 0.为什么要用WebODM 1.参考链接 2.安装步骤 0.为什么要用WebODM 用于航拍图像生成三维重建.三维建模等,界面更简单(比较命令行方式)! ...
- flash player安装教程--亲测有效
flash player安装教程--亲测有效 安装步骤 平日工作中 经常会遇到视频播放有问题,此时,一般提示安装flash player,但是按照提示步骤 根本不起作用,毫无思路,此时可参考我的安装步 ...
- 下载安装mathtype并导入Word | 保姆机安装教程 亲测有效 一次成功 科研必备
1.官网下载mathtype 链接 我的是Win10 下载的是第二个 中文版 下载完成 打开进行安装 我把它放在E盘 新建了mathtype文件夹 2.查看Word版本 打开word 点文件→账户→关 ...
- 超详细的pytorch版本yolov3安装教程--亲测有效!!!
前言 最近在进行一个工程项目,需要使用yolo算法来实现.首先就选择了yolov3来进行demo实现,因为yolov3在YOLO系列中也是非常经典的一个版本.网上有很多环境配置教程,但是很多教程的讲述 ...
- ubuntu 20.04 安装 微信,QQ等客户端,一键安装,亲测成功,最新更新,优麒麟
之前一直使用网页版微信,但是聊天记录完全无法存留,一旦断网就会退出登录,然后每次登录都要确认,很麻烦. 要是有ubuntu下的微信客户端就好了,但是并不是所有的客户端都一样好用,博主安装并实测了几个u ...
- centos7.9使用rpm安装Jenkins_亲测成功---持续集成部署Jenkins工作笔记0022
以前我们是在linux上安装了一个tomcat,然后把Jenkins的war包放到 对应的web目录里,跑起来的,这样的方式去安装的Jenkins. 1.首先如果以前安装过jenkins的话,需要彻底 ...
- 安装RHEL7配置本地yum源 -- yum不能安装时,在本地安装,亲测成功
RHEL7 本地yum源配置 我们在安装Redhat的时候一般都不会填写注册信息,因为该产品是要购买的,所以我们在使用安装好的Redhat时有的功能是受限的,使用yum源install就是其中之一.那 ...
- Microsoft Office for Mac最新版本安装教程,亲测可用
办公必备的Office工具,它为需要使用 Office 工具的用户和企业设计,让他们可以利用功能强大的 Outlook 来处理电子邮件.日历和通讯录事宜.你所熟知和信赖的 Office 经过更新后,可 ...
最新文章
- 虚拟机里Centos7的IP地址查看方法
- 从零开始学习python-从零开始学习python(一)
- springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用
- 作者:胡青青(1984-),女,现就职于中国人民银行征信中心数据部,主要研究方向为数据挖掘。...
- 【Flink】Flink 1.12.2 SlotManager
- 从零开始学前端:HTML的一些文本格式化标签、快捷键、和特殊符号 --- 今天你学习了吗?(CSS:Day02)
- 第四次博客:循环单链表解决约瑟夫环问题
- RACCommand
- Android 中 shape 各种属性详细介绍
- 拆解ONES,从ONES深挖项目研发管理机制
- 互联网医疗的千姿百态:火热、亏损、巨头亲赖
- 苹果开发者注册设备异常记录
- ARM中的紧耦合内存(TCM)
- 肺癌治疗正式开启“免疫时代”
- 在studio one中使用iZotope Ozone 9?臭氧9怎么导入到Logic Pro X和AU中?速看教程
- Ubuntu9.04 mplayer中文字幕乱码解决
- 3. codeblocks导入一个存在的项目
- Android 基于dkPlayer实现抖音列表播放
- 华为AppGallery常用跳转与链接详解
- 记一次清除浏览器广告的经历
热门文章
- Linux中_Ubuntu上_使用命令总结整理_02
- foxmail 企业邮箱密码修改
- 公务员考试常识!!!
- 表单验证插件:jQuery Validation Engine
- 什么是JavaAgent?
- 设计一个高并发、高可用秒杀系统
- 《MATLAB 神经网络43个案例分析》:第30章 基于随机森林思想的组合分类器设计——乳腺癌诊断
- 2021年中国直播电商用户数量、成交额及企业数量分析[图]
- Mybatis注解开发(超详细)
- 跨域问题JAVA后台设置cors跨域中关于access-control-allow-headers导致的错误