Emscripten编译器安装教程,亲测成功编译出第一个WebAssembly

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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:UsersAdministrator>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:Applicationemsdkclange1.37.36_64bit
INFO:root:(Emscripten: Running sanity checks)

C:UsersAdministrator>

如果是,那么恭喜你已经安装成功了。可以忽略步骤三了。

步骤三:配置环境变量

打开刚才克隆下来的emsdk文件夹,双击执行emcmdprompt.bat文件,可以看到如下内容(我把emsdk克隆到了D:Application下,所以下面有很多D:Application,实际情况以你们克隆保存目录为准):

Adding directories to PATH:
PATH += D:Applicationemsdkclange1.37.36_64bit
PATH += D:Applicationemsdknode8.9.1_64bitbin
PATH += D:Applicationemsdkpython2.7.13.1_64bitpython-2.7.13.amd64
PATH += D:Applicationemsdkjava8.152_64bitbin
PATH += D:Applicationemsdkemscripten1.37.36

Setting environment @R_512_2715@iables:
EMSDK = D:/Application/emsdk
BINARYEN_ROOT = D:Applicationemsdkclange1.37.36_64bitbinaryen
JAVA_HOME = D:Applicationemsdkjava8.152_64bit
EMSCRIPTEN = D:Applicationemsdkemscripten1.37.36

这堆东西用来让你配置环境变量的,右键我的电脑 -> 属性 -> 高级系统设置 -> 环境变量,在系统变量的Path值中添加:

D:Applicationemsdkclange1.37.36_64bit;D:Applicationemsdknode8.9.1_64bitbin;D:Applicationemsdkpython2.7.13.1_64bitpython-2.7.13.amd64;D:Applicationemsdkjava8.152_64bitbin;D:Applicationemsdkemscripten1.37.36

新建系统变量EMSDK,值设置为D:/Application/emsdk
新建系统变量BINARYEN_ROOT,值设置为D:Applicationemsdkclange1.37.36_64bitbinaryen
新建系统变量JAVA_HOME,值设置为D:Applicationemsdkjava8.152_64bit
新建系统变量EMSCRIPTEN,值设置为D:Applicationemsdkemscripten1.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 loadedn");
}
// 返回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全部内容,希望文章能够帮你解决Emscripten编译器安装教程,亲测成功编译出第一个WebAssembly所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。