如何使用命令行在 Ubuntu 上安装最新的 emscripten?

如何使用命令行在 Ubuntu 上安装最新的 emscripten?

我想在 ubuntu 中安装最新的 emscripten 以便使用以下命令使用 WebAssembly。

sudo apt-get install emscripten  

但是它给我的版本是 1.22.1,这是 2014 年的版本,不支持 WebAssembly 编译。

$ emcc --version
emcc (Emscripten GCC-like replacement) 1.22.1 ()
Copyright (C) 2014 the Emscripten authors (see AUTHORS.txt)
This is free and open source software under the MIT license.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

有没有在命令行中安装最新 emscripten 的简单指南?

答案1

安装说明建议:下载emsdk-便携版.tar.gz

解压缩,然后打开终端并运行:

# Fetch the latest registry of available tools.
./emsdk update

# Download and install the latest SDK tools.
./emsdk install latest

# Make the "latest" SDK "active"
./emsdk activate latest

看:http://kripken.github.io/emscripten-site/docs/getting_started/downloads.html#installation-instructions了解更多信息

答案2

来自 emscripten 的文档页面 [从零开始]

1. 获取 emsdk 仓库

git clone https://github.com/emscripten-core/emsdk.git

2. 进入该目录

cd emsdk

3.下载并安装最新的 SDK 工具

./emsdk install latest

4. 使“最新” SDK 处于“活动”状态

./emsdk activate latest

5.激活PATH和其他环境变量

source ./emsdk_env.sh

这些变量是为当前终端设置的,如果你想让它们适用于所有人,那么你可以将它们放入任何终端配置文件中。它们如下:

环境变量:

EMSDK = < emsdk 目录路径 >

EM_CONFIG = ~/.emscripten

EMSDK_NODE = < emsdk 目录路径 >/node/12.9.1_64bit/bin/node

6. 现在就尝试一下吧!

emcc

答案3

构建较新版本的 emscripten 是不够的。您还必须自己构建 LLVM,因为 emscripten 会抱怨

CRITICAL:root:WebAssembly set as target, but LLVM has not been built with the WebAssembly backend

我按照以下关于构建 LLVM 的教程来运行它 http://llvm.org/docs/GettingStarted.html以及一些提示 https://github.com/kripken/emscripten/wiki/New-WebAssembly-Backend

git clone http://llvm.org/git/llvm.git
git -C llvm/tools clone http://llvm.org/git/clang.git
git -C llvm/projects clone http://llvm.org/git/compiler-rt.git
git -C llvm/projects clone http://llvm.org/git/openmp.git
git -C llvm/projects clone http://llvm.org/git/libcxx.git
git -C llvm/projects clone http://llvm.org/git/libcxxabi.git
mkdir llvmbuild
cd llvmbuild
cmake -G "Unix Makefiles" \
      -DLLVM_ENABLE_PROJECTS="llvm/tools/clang;llvm/projects/libcxx;llvm/projects/libcxxabi" \
      -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly \
      -DCMAKE_BUILD_TYPE=Release \
      ../llvm
make all
cd ..

然后按照以下教程构建 emscriptenhttp://webassembly.org/getting-started/developers-guide/

git clone https://github.com/juj/emsdk.git
cd emsdk
./emsdk install sdk-incoming-64bit binaryen-master-64bit
./emsdk activate sdk-incoming-64bit binaryen-master-64bit
source ./emsdk_env.sh
cd ..

# configure emscripten to use self-built LLVM
cat ~/.emscripten \
    | sed "s:LLVM_ROOT=[^\n]*:LLVM_ROOT='${PWD}/llvmbuild/bin':g" \
    > ~/.emscripten.tmp
mv ~/.emscripten ~/.emscripten.bak
mv ~/.emscripten.tmp ~/.emscripten

相关内容