Ubuntu16.04手工搭建emscripten编译环境 遇到的问题记录

首先我是按照这篇博客来安装编译环境https://blog.csdn.net/fanxingzju/article/details/80488788

下面是爬过的坑

1.

cd /home/fzn/emscripten
./emcc --help

下载emscripten代码,执行--help之后报错

Traceback (most recent call last):
  File "./emcc.py", line 40, in <module>
    import emscripten
  File "/home/fzn/emscripten/emscripten.py", line 463
    args.append(f'--separate-data-segments={memfile}')
                                                    ^
SyntaxError: invalid syntax

处理办法删除emscripten  重新下载其他版本。我是在github上下载的,上传到网盘了。链接:https://pan.baidu.com/s/1fvTumuUK5h9ekn59yB3TaA  提取码:bydm 
用这个版本替换后可以出来 Welcome to Emscripten! 欢迎界面。

 

2. 类似 emcc: error: failing sanity checks due to previous llvm failure这种,是llvm版本不匹配

我是重新下载的11.0版本  https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz

这个版本我记得是编译过的,已经有bin文件夹了。

更新后可能会报clang++文件找不到什么的(具体忘了),我的处理办法是把emscripten-fastcomp/build/bin 里面的clang文件复制一个重新命名。这些可能是版本不一样命名不同的原因。

 

3.会报一个wasm-ld  错误。

把emscripten-fastcomp/build/bin 下的lld 重新命名一个wasm-ld文件。  两个文件是一样的,不一样的叫法。

 

4会报一个wasm-opt错误。这个文件在binaryen/bin目录下。

报错unzip version_48.zip版本 删掉下载更换97版本  链接:https://pan.baidu.com/s/15-eNWQFOXHQXzgh5cXIFXg   提取码:dsn2 

有的下载的包里面是源码没有bin目录的话还要 编译cmake . && make

 

5.会报js解析问题错误。没有保留记录原因是nodejs版本太低了。我升级到 nodejs 14.15.3版本

升级方法:sudo apt-get install curl  -》  sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -   -》 sudo apt-get install -y nodejs

 

6.error: clang executable not found at `/home/lius/fzn/emscripten-fastcomp-master/build/bin/clang

检查是否/home/lius/fzn/emscripten-fastcomp-master/build/bin 这个路径名称和你新建的build对不对的上。可能会有失误新建成了bulid了  。

 

7.我记得emscripten-fastcomp  好像也在gihub上下载了最新的版本替换。

 

 

我觉得即使我这里能跑通测试,各位网友的自己的环境还是会出现一些列的奇怪问题。版本匹配问题很烦人。我考虑把虚拟机打包传到百度网盘有需要的留下邮箱。

 

搭建这个环境,总之心里就一句话 “麻辣隔壁!!!!!”

 

 

 

 

上一篇:Linux 系统中用户切换


下一篇:javascript – 我可以以某种方式构建webassembly代码*而不使用* emscripten“glue”吗?