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 环境的更多相关文章

  1. EditPlus+MinGW搭建简易的C/C++开发环境

    EditPlus+MinGW搭建简易的C/C++开发环境 有时候想用C编点小程序,但是每次都要启动那难用又难看的VC实在是不情愿,而且老是会生成很多没用的中间文件,很讨厌,后来看到网上有很多人用Edi ...

  2. Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程

     Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程 一.准备工具: QT-SDK for Windows:http://get.qt.nokia.com/qtsdk/qt-sd ...

  3. MinGW安装与环境变量配置和Sublime Text 2搭建C++编译环境

    MinGW安装与环境变量配置 从http://sourceforge.net/projects/mingw/下载MinGW,安装到D:\MinGW.工具集选择安装(之后还可以进行安装卸载):至少需要安 ...

  4. 在Windows下用Eclipse+CDT+MinGW搭建C++开发平台

    本文提供了在Windows下用Eclipse+CDT+MinGW搭建C / C++开发平台的方法, 测试平台为Windows XP Sp2 CHS.   以下软件均为Windows平台下的版本. 1. ...

  5. 第0课 - 搭建开发环境之安装QT

    第0课 - 搭建开发环境之安装Qt 1. 课程学习的原材料 — Visual Studio 2010 — Qt SDK 4.7.4 — Qt Creator 2.4.1 2. Visual Studi ...

  6. Flume1 初识Flume和虚拟机搭建Flume环境

    前言:       工作中需要同步日志到hdfs,以前是找运维用rsync做同步,现在一般是用flume同步数据到hdfs.以前为了工作简单看个flume的一些东西,今天下午有时间自己利用虚拟机搭建了 ...

  7. 搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展

    上一篇:搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展 一.安装Memcached 1.yum安装libevent事件触发管理器 yum -y install libe ...

  8. 搭建LNAMP环境(二)- 源码安装Nginx1.10

    上一篇:搭建LNAMP环境(一)- 源码安装MySQL5.6 1.yum安装编译nginx需要的包 yum -y install pcre pcre-devel zlib zlib-devel ope ...

  9. 搭建LNAMP环境(一)- 源码安装MySQL5.6

    1.yum安装编译mysql需要的包 yum -y install gcc-c++ make cmake bison-devel ncurses-devel perl 2.为mysql创建一个新的用户 ...

随机推荐

  1. react路由嵌套

    所谓的嵌套路由就是在某些以及路由下面存在二级路由,这些二级路由除了公用一级路由导航模块外,还公用当前的二级路由的导航模块,也就是部分进行了切换,要实现嵌套路由,首先回顾之前的内容,实现基本的react ...

  2. sudo 命令报错的解决方法

    尝试着用终端打开Mac的安全权限(sudo spctl --master-disable),却显示以下提示,望高手解答. sudo: /etc/sudoers is world writablesud ...

  3. 将 GitHub 的某人的特定仓库复制到自己的账户下 的方法

    访问仓库页面,点击 Fork 按钮创建自己的仓库 Fork 就是将 GitHub 的某个特定仓库复制到自己的账户下. Fork 出的仓库与原仓库是两个不同的仓库,开发者可以随意编辑. 新建的仓库名为& ...

  4. GO中DEFER的理解--DEFER执行的原理

    在golang当中,defer代码块会在函数调用链表中增加一个函数调用.这个函数调用不是普通的函数调用,而是会在函数正常返回,也就是return之后添加一个函数调用.因此,defer通常用来释放函数内 ...

  5. centos6.8下pptp客户端的安装配置

    原文: https://blog.csdn.net/zhang11321132/article/details/20612473 yum -y install ppp pptp pptp-setup ...

  6. [UE4]实例化材质

    在虚幻引擎 4 中,材质实例化用来更改材质的外观,而不会引起成本高昂的材质重新编译. 实例化材质官方文档

  7. [UE4]继承标准控件

    可以继承自标准控件的自定义控件中把常用的方法封装,比如设置字体大小: 调用自定义控件的自定义函数 还可以继续创建子蓝图控件

  8. 搞定queryString

    querystring字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析.querystring模块只提供4个方法: querystring.parse querystring.str ...

  9. locals()和globals()

    都是获取当前作用域的内容: locals() 获取局部作用域的所有内容 函数内:获取locals()之前的,当前作用阈所有内容 函数外:获取打印前, 当前的作用域所有内容 在闭包内: 会把使用到的外层 ...

  10. boost 学习笔记 1: lexical_cast

    参考原著地址:http://einverne.github.io/post/2015/12/boost-learning-note-1.html 转换对象要求 lexical_cast 对转换对象有如 ...