mingw 搭建Emscripten 环境
mingw 环境的搭建可以参考网上很多文章,不复杂。但在搭建Emscripten 环境之前需要配置git 和python 和MSbuild.exe 还需要安装camke 默认安装之后应该是添加了
系统环境变量,如果mingw内无法使用cmake的话可以手动设置profile 文件
下面是mingw的profile文件的手动添加的几项备注一下:
if [ $MSYSTEM == MINGW32 ]; then
export PATH=".:/usr/local/bin:/mingw/bin:/bin:/python:$PATH"
else
export PATH=".:/usr/local/bin:/bin:/mingw/bin:/python:$PATH"
fi export PATH="/c/Program Files/Git/bin:${PATH}"
export PATH="/c/Program Files/Git/mingw64/libexec/git-core:${PATH}" export PATH="/c/Program Files/CMake/bin:${PATH}"
export PATH="/c/Program Files (x86)/MSBuild/12.0/Bin/amd64:${PATH}"
python的环境需要在设置一下fstab 的配置如下:
#Win32_Path Mount_Point
C:/MinGW /mingw
C:/Python27 /python
profile的添加的几项都是它们安装的路径 格式如上。
-----------------------------------------------------------------------------
下面开始搭建Emscripten 环境。
Emscripten 对应git:https://github.com/juj/emsdk
Emscripten 官网:http://kripken.github.io/emscripten-site/docs/getting_started/downloads.html
官网上面也有相应的各平台环境搭建的介绍。
打开mingw 然后下载emscripten的sdk:
git clone https://github.com/juj/emsdk.git
cd emsdk
编译安装:
emsdk install --build=Release sdk-incoming-64bit binaryen-master-64bit
继续:
./emsdk activate --build=Release sdk-incoming-64bit binaryen-master-64bit
然后:
# on Linux or Mac OS X
source ./emsdk_env.sh
# on Windows
emsdk_env.bat
注意,最后一行非常重要。每次重新登陆或者新建 Shell 窗口,都要执行一次这行命令source ./emsdk_env.sh
其中编译安装的可能会报错,如果电脑本机没有安装vs2015的话,会有问题,Emsdk最新可以支持vs2017
所以避免vs版本错误的话,比如本机安装的最高vs版本为2013 在编译的时候需要指定vs版本,这样就不会报vs的错误了
如下:
emsdk install --build=Release sdk-incoming-64bit binaryen-master-64bit --vs2013
如果没什么错误的话,可以试着编译一个hello world
首先,新建一个最简单的 C++ 程序hello.cc
#include <iostream> int main() {
std::cout << "Hello World!" << std::endl;
}
然后,将这个程序转成 asm.js。
$ emcc hello.cc
$ node a.out.js
Hello World!
上面代码中,emcc
命令用于编译源码,默认生成a.out.js
。使用 Node 执行a.out.js
,就会在命令行输出 Hello World。
注意,asm.js 默认自动执行main
函数。
emcc
是 Emscripten 的编译命令。它的用法非常简单。
# 生成 a.out.js
$ emcc hello.c # 生成 hello.js
$ emcc hello.c -o hello.js # 生成 hello.html 和 hello.js
$ emcc hello.c -o hello.html
参考:
http://www.ruanyifeng.com/blog/2017/09/asmjs_emscripten.html
https://developer.mozilla.org/zh-CN/docs/WebAssembly/C_to_wasm
https://github.com/juj/emsdk
一个媒体库web-dsp
https://github.com/shamadee/web-dsp
mingw 搭建Emscripten 环境的更多相关文章
- EditPlus+MinGW搭建简易的C/C++开发环境
EditPlus+MinGW搭建简易的C/C++开发环境 有时候想用C编点小程序,但是每次都要启动那难用又难看的VC实在是不情愿,而且老是会生成很多没用的中间文件,很讨厌,后来看到网上有很多人用Edi ...
- Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程
Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程 一.准备工具: QT-SDK for Windows:http://get.qt.nokia.com/qtsdk/qt-sd ...
- MinGW安装与环境变量配置和Sublime Text 2搭建C++编译环境
MinGW安装与环境变量配置 从http://sourceforge.net/projects/mingw/下载MinGW,安装到D:\MinGW.工具集选择安装(之后还可以进行安装卸载):至少需要安 ...
- 在Windows下用Eclipse+CDT+MinGW搭建C++开发平台
本文提供了在Windows下用Eclipse+CDT+MinGW搭建C / C++开发平台的方法, 测试平台为Windows XP Sp2 CHS. 以下软件均为Windows平台下的版本. 1. ...
- 第0课 - 搭建开发环境之安装QT
第0课 - 搭建开发环境之安装Qt 1. 课程学习的原材料 — Visual Studio 2010 — Qt SDK 4.7.4 — Qt Creator 2.4.1 2. Visual Studi ...
- Flume1 初识Flume和虚拟机搭建Flume环境
前言: 工作中需要同步日志到hdfs,以前是找运维用rsync做同步,现在一般是用flume同步数据到hdfs.以前为了工作简单看个flume的一些东西,今天下午有时间自己利用虚拟机搭建了 ...
- 搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展
上一篇:搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展 一.安装Memcached 1.yum安装libevent事件触发管理器 yum -y install libe ...
- 搭建LNAMP环境(二)- 源码安装Nginx1.10
上一篇:搭建LNAMP环境(一)- 源码安装MySQL5.6 1.yum安装编译nginx需要的包 yum -y install pcre pcre-devel zlib zlib-devel ope ...
- 搭建LNAMP环境(一)- 源码安装MySQL5.6
1.yum安装编译mysql需要的包 yum -y install gcc-c++ make cmake bison-devel ncurses-devel perl 2.为mysql创建一个新的用户 ...
随机推荐
- itertools库 combinations() 和 permutations() 组合 和 排列选项的方法
combinations方法重点在组合,permutations方法重在排列. combinations和permutations返回的是对象地址,原因是在python3里面,返回值已经不再是list ...
- MyBatis 的缓存机制
缓存机制可以减轻数据库的压力,原理是在第一查询时,将查询结果缓存起来,之后再查询同样的sql, 不是真的去查询数据库,而是直接返回缓存中的结果. 缓存可以降低数据库的压力,但同时可能无法得到最新的结果 ...
- Java-Runoob-高级教程-实例-数组:13. Java 实例 – 数组交集
ylbtech-Java-Runoob-高级教程-实例-数组:13. Java 实例 – 数组交集 1.返回顶部 1. Java 实例 - 数组交集 Java 实例 以下实例演示了如何使用 reta ...
- [Html] jQuery Grid
https://www.jqwidgets.com/ jQuery Grid https://marketplace.visualstudio.com/items?itemName=jqwidget ...
- Jmeter(四十二)Jmeter工作原理
“千举万变,其道一也.不离于宗,谓之天人” ----<荀子·儒效>和<庄子·天下> 作为接口测试工具 Jmeter只是作为发起请求的客户端(可以理解为前端),Jmeter是作为 ...
- JavaScript、CSS样式收集
JS集: //给from一个名字然后在JavaScript的地方就可以用form的名字来调用form表单里input元素的value属性可以得到值 var val=form_name.input_na ...
- Delphi 解决Utf8ToAnsi和Utf8DeCode转换编码为空的问题
//delphi DecodeUtf8Str解决系统自带UTF8解码缺陷 function DecodeUtf8Str(const S: UTF8String): WideString; var le ...
- (转)打印相关_C#(PrintDocument、PrintDialog、PageSetupDialog、PrintPreviewDialog)
原文地址:http://www.cnblogs.com/smallsoftfox/archive/2012/06/25/2562718.html 参考文章:http://www.cnblogs.com ...
- Java 13 - Java 数组
Java 数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如num ...
- Hadoop2.6.5集群搭建
一. Hadoop的分布式模型 Hadoop通常有三种运行模式:本地(独立)模式.伪分布式(Pseudo-distributed)模式和完全分布式(Fully distributed)模式.安装完成后 ...