zoukankan      html  css  js  c++  java
  • Emscripten编译环境搭建--将C和C++编译成JS

    Emscripten编译环境搭建--将C和C++编译成JS


    需求:linux环境下用js执行c、c++文件,使用emscirpten编译器

    目标:搭建好Emscripten环境

    环境:Ubuntu16.04

    操作日期:2018.07.31

    巨大天坑:按照官网步骤走会有很多坑...各种依赖的版本、下载、安装的配置,一直failed...对于linux不精通的我甚至不知道有的错出现在哪里...

    解决办法:安装工具包,一键式操作,寻求emsdk解决

    参考博客:https://www.cnblogs.com/Bob-wei/p/9121290.html


    步骤重演:
    1.各类安装工具让它一键安装:
    $ sudo apt update
    $ sudo apt install vim openssh-server git curl wget tar unzip
    $ sudo apt install build-essential python cmake default-jre

    2.进自己的根目录,从github拷贝源(自动创建emsdk文件夹):
    $ cd ~
    $ git clone https://github.com/juj/emsdk.git

    3.将其更新至最新版本(这个步骤貌似多余,但走一遍):
    $ cd emsdk
    $ ./emsdk update

    4.关键步骤--安装最新的SDK
    安装时会自动检查并下载缺失的llvm(体积很大)、clang、node、emscripten和sdk。
    $ mkdir ~/emsdk/zips
    $ ./emsdk install latest

    ***又有一巨坑,因为网络原因,用install latest自动下载安装期间几乎百分百出错,以至于只能手动下载llvm、clang、node、emscripten、sdk几个依赖放到创建好的emskd/zips文件夹里,再次执行$ ./emsdk install latest这条命令。
    ***去哪儿下载依赖?每次执行$ ./emsdk install latest出错时,都是因为下载安装等错误,读懂提示文字循着链接自己从浏览器里下载,然后放进zips里,下载好一个再执行一遍$ ./emsdk install latest。以此类推,几个依赖装完也就安装完成了算。

    5.为当前用户配置~/.emscripten文件
    $ cd emsdk
    $ ./emsdk activate latest

    6.查看安装列表,安装binaryen(此处安装方法同第四步)
    $ ./emsdk list
    ./emsdk install binaryen-tag-1.38.4-64bit
    ./emsdk activate binaryen-tag-1.38.4-64bit

    7.为当前会话配置环境变量
    $ cd ~/emsdk
    $ source ./emsdk_env.sh
    $ cd ~/emsdk
    $ ./emsdk list

    8.查看版本
    $ emcc --version
    $ em++ --version
    没有警告,恭喜你Emscipten环境配置完毕,可以开心编译c、c++成js插到网页用了。

    9.备份(安装不易,备份且珍惜)
    $ cd ~
    $ tar cvzf emsdk.tar.gz emsdk

  • 相关阅读:
    JAVA 程序pending 数据库锁
    圆形相遇问题
    DROP TABLE
    sed 删除
    JVM程序计数器
    《神奇的数学》颠覆你对数学的初始感觉
    error "OPatch cannot find a valid oraInst.loc file to locate Central Inventory
    【linux】提醒"libc.so.6: version `GLIBC_2.14' not found"系统的glibc版本太低
    Linux 常用命令随笔(一)
    国际结算业务--国际结算中的票据
  • 原文地址:https://www.cnblogs.com/hencins/p/9396448.html
Copyright © 2011-2022 走看看