在Ubuntu上安装Emscripten

我试图在Ubuntu上安装Emscripten,但Emscripten 的官方安装指南并没有提供在Linux上安装Emscripten的任何说明。 安装指南唯一的build议是:

If you are on Linux, things should be very simple for you and there is no need for any additional guide.

我也读过了Emscripten版本库中的README.md文件,也没有提供任何有关Ubuntu的说明。 在Ubuntu上设置Emscripten需要遵循哪些步骤?

为了开始叮当3.2我假设你正在运行的Ubuntu 12.1013.04已经有了clang 3.2打包,所以我会推荐使用这些软件包。

有两种方法可以获得它们:

  1. 安装/升级Ubuntu 13.04的选定软件包(小插入)

    • 添加deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverse到你的来源。
    • 更新你的软件包信息(例如sudo apt-get update
    • 只安装所需的软件包和依赖关系(例如sudo apt-get install clang-3.2
    • 禁用之前添加的源条目。
  2. 升级/安装Ubuntu到13.04+

编辑:

更新到目前的情况。

对于Ubuntu 12.04,这也很容易。

  1. 请访问http://llvm.org/releases/download.html并下载LLVM 3.2(用于Ubuntu-12.04 / x86的Clang Binaries)LLVM已集成
  2. 把它解压到你喜欢的地方。 ~/opt/dev/llvm
  3. 将其添加到您的.profile PATH="$PATH:/home/[your_profile]/opt/dev/llvm/clang3.2/bin"
  4. 确保你已经安装了nodejs
  5. 请按照emscripten安装说明进行操作

就这样

如果你得到/usr/include/features.h:324:10: fatal error: 'bits/predefs.h' file not found只需安装sudo apt-get install libc6-dev-i386

Emscripten是一个复杂的软件工具系统,支持多种平台。 正如这种系统的典型情况一样,入门指导可能有点神秘。 第一个不幸的是, 从Ubuntu回购站安装emscripten可能不是你最好的选择 ,至少现在是这样。

通过下载用于Linux和OS X的便携式Emscripten SDK ,并从包含的README.md文件中执行以下步骤,我获得了所需的大部分功能:

  • 跑 。 /emsdk update 。 这将获取最新的可用工具注册表。
  • 运行./emsdk install latest 。 这将下载并安装最新的SDK工具。
  • 运行./emsdk activate latest 。 这将设置〜/ .emscripten指向SDK。

请注意,初始下载是微小的,但运行上面的步骤需要一段时间(大约一个小时,但可能取决于互联网的速度),并使用大约13G的磁盘空间。

我发现我还需要安装(在Ubuntu 14.04 LTS上):

 apt-get install nodejs-legacy 

可能还需要其他依赖关系,希望根据您所看到的错误消息轻松追踪。

下面是一个如何构建和运行C ++程序的简单示例:

 emsdk_portable/emscripten/tag-1.34.8/em++ hello.cpp -o temp.html chromium-browser --new-window temp.html 

截至2017年7月,我只能建议您手动编译LLVM和emscripten,因为Ubuntus存储库中的软件包严重过时,甚至不支持WebAssembly(这可能是此时的默认使用情况, WebAssembly标准最近已经被商定,我们正在将所有从ASM.js,PNaCl,C和C ++移植到WebAssembly)。

要了解如何编译它们,请参阅http://llvm.org/docs/GettingStarted.html#compiling-the-llvm-suite-source-code,https://github.com/kripken/emscripten/wiki/New- WebAssembly-Backend和http://webassembly.org/getting-started/developers-guide/