Emscripten介绍

 Emscripten包含了将C/C++代码编译为WebAssembly所需的完整工具集(LLVM、Node.js、Python、Java等),它不依赖于任何其他的编译器环境。emsdk是一组基于Python 2的脚本,因此首先需要安装Python 2.7.12或更新版。

Emscripten的安装

以下是使用MacOS安装Emscripten所遇到的问题。

  1. 通过Git的clone命令下载emsdk
# 获取emsdk包
git clone https://github.com/emscripten-core/emsdk.git# 进入文件夹
cd emsdk
  1. 运行以下的emsdk指令去从Github获取最新的工具并激活工具
重点1 Emscripten的安装需要下载外网的依赖,所以需要使用科学上网工具
# 获取最新的emsdk版本
git pull# 下载和安装最新的工具(需要科学上网)
./emsdk install latest# 激活工具
./emsdk activate latest# 激活环境变量(需设置环境变量,会有提示的)
source ./emsdk_env.sh
  1. 运行看是否成功安装
apple@HarrydeiMac emsdk %  emcc -v
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.11
clang version 11.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project baa6f6a7828a46c37b96227282938717220f8b34)
Target: x86_64-apple-darwin19.3.0
Thread model: posix
InstalledDir: /Users/apple/github/emsdk/upstream/bin

在执行命令 ./emsdk install latest 过程中会遇到如下错误

xxxs-MacBook-Pro:emsdk StupidZhe$ emsdk install latest
Fetching emscripten-releases repository...
Repository 'https://chromium.googlesource.com/emscripten-releases' already cloned to directory '/Users/StupidZhe/IT/emsdk/releases', skipping.
Fetching latest changes to the branch 'master' for '/Users/StupidZhe/IT/emsdk/releases'...
Already up to date.
Successfully updated and checked out branch 'master' on repository '/Users/StupidZhe/IT/emsdk/releases'
Current repository version: "Fri, 12 Jul 2019 01:21:37 +0000 25df940fc1647cd6fec3593eeb9a439e2b3d1c0d"
Fetching all precompiled tagged releases..
Error downloading URL 'https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/tag/osx_32bit/index.txt': <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)>
Error downloading URL 'https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/tag/osx_64bit/index.txt': <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)>
Installing SDK 'sdk-releases-fastcomp-80bff2784f8500c1305ca69ba1d9fc84df0e401c-64bit'..
Installing tool 'releases-fastcomp-80bff2784f8500c1305ca69ba1d9fc84df0e401c-64bit'..
Error downloading URL 'https://storage.googleapis.com/webassembly/emscripten-releases-builds/mac/80bff2784f8500c1305ca69ba1d9fc84df0e401c/wasm-binaries.tbz2': <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)>
Traceback (most recent call last):File "/Users/StupidZhe/IT/emsdk/emsdk", line 2697, in <module>sys.exit(main())File "/Users/StupidZhe/IT/emsdk/emsdk", line 2679, in mainsuccess = tool.install()File "/Users/StupidZhe/IT/emsdk/emsdk", line 1540, in installsuccess = tool.install()File "/Users/StupidZhe/IT/emsdk/emsdk", line 1556, in installsuccess = download_and_unzip(url, self.installation_path(), download_even_if_exists=download_even_if_exists, filename_prefix=filename_prefix)File "/Users/StupidZhe/IT/emsdk/emsdk", line 1116, in download_and_unzipassert received_download_target == download_target
AssertionError

解决方式:

#命令行直接打开并编辑emsdk脚本vim emsdk.py#然后在脚本import下插入两行代码
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

然后再执行./emsdk install latest还会提示No module named _ssl,然后我又查询了各种方式配置,结果最终被‘brew upgrade python3’ 完败,发现自己电脑的python版本低了。
提示ssl找不到的错误提示大致是这样的

···
import _ssl # if we can't import it, let the error propagate
ImportError: No module named _ssl
>>>

经过千山万水的阻挡最终成功了(完事后的汇总)

笔者安装Emscripten的目的是将c文件编译成.wasm文件。&

vim hello.c
#include <stdio.h>
int main(){printf("hello world");return 0;
}

emcc hello.c -Os -s WASM=1 -s SIDE_MODULE=1 -o hello.wasm

macOS 安装 emscripten补充爬坑相关推荐

  1. Vmware安装Kali Linux2020.2(详细安装教程,爬坑指南,详细到哭)

    Vmware Workstation(本人版本15.5.1).kali-linux-2020.2-installer-amd64.ios(文件过大不能直接分享,下面附上百度网盘链接,需要自取) 链接: ...

  2. kali2021.1安装pdtools挤牙膏式爬坑日记

    kali2021.1安装pdtools挤牙膏式爬坑日记 本人电脑为macOS Big Sur 11.1 parallels Desktop为16.1.1 首先,感谢两位大佬的博客,由于我出现的问题比较 ...

  3. 【转载】python3安装scrapy之windows32位爬坑

    python3安装scrapy之windows32位爬坑 原创 2016年11月06日 01:38:08 标签: scrapy / windows / python / 开源框架 / 网络爬虫 早就听 ...

  4. centos7安装mysql日志空白_centos7安装Mysql爬坑记录 - G

    centos7安装Mysql爬坑记录 查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装任何 ...

  5. osx php7 imagick,[PHP] MacOS 自带php环境安装imagick扩展踩坑记录 | 码农部落

    前言 最近学习yii2,在搭建环境后,发现在访问contact页面时报错,如下: "Either GD PHP extension with FreeType support or Imag ...

  6. virtualbox 安装kali linux虚拟机,kali Linux安装virtualbox虚拟机之爬坑经历

    原标题:kali Linux安装virtualbox虚拟机之爬坑经历 很多kali爱好者想把kali linux作为系统使用,但是有些win下的程序有时候也需要用到,此时需要虚拟机. kali系统在安 ...

  7. centos7 安装mysql8_CentOS7中安装MySQL8.0.21爬坑记录

    在CentOS7.3中安装了MySQL8.0.21之后,就开启了一段漫长的爬坑历程,简要回顾如下: 一.从Win10中用Navicat连接安装好的MySQL服务器 出现如下异常:1045 - Acce ...

  8. charles安装教程--以及针对安装证书后https<unknown>爬坑

    一.安装教程(如果是爬坑https<unknown>可以往下翻到底部) 1.官网下载了charles 选好盘符进行安装 安装后打开 界面如下 2.功能介绍 (1)清空所有请求 (2)开始/ ...

  9. ubuntu20安装gdb插件gef的爬坑记录

    0x00 环境 ubuntu20.04.2.0 0x01 踩坑过程 1.按照官网教程安装 官网地址:https://github.com/hugsy/gef 按照官网提示安装,wget报TLS连接错误 ...

最新文章

  1. python用途与前景-java和Python的前景谁更好
  2. R开发(part10)--基于S3的面向对象编程
  3. python3(二)Numpy
  4. BZOJ1706奶牛接力跑
  5. 资源分享|平面设计师可参考的素材网站
  6. jersey REST的接口简述
  7. bloom-generate 打包 ros 版本 noetic 的包及报 /usr/bin/ld: 找不到 -lpthreads与undefined reference pthread_create
  8. XCode6自定义pch文件
  9. centos7 配置阿里yum源
  10. SketchUp教程:BIG事务所的建筑竞赛分析图表现(附笔刷+处理稿)
  11. java 数据权限控制_数据权限-数据列权限设计方案
  12. 史上最全的数据库面试题,面试前刷一刷!
  13. 学计算机应用表白,521.1314表白的数学题 学霸间的表白方式
  14. linux sssd服务启动失败,active-directory – SSSD Kerberos AD Centos故障排除
  15. 【c语言】有符号机器数之间怎么比较大小?
  16. 不要跌入孤独寂寞的陷阱
  17. 擦除Mac上所有内容和设置的最快方法
  18. python-布尔运算
  19. 2022-2028全球与中国食品饮料包装透明沉积膜市场现状及未来发展趋势
  20. java租车系统_Java实现租车系统的详细过程

热门文章

  1. 分布式系统中间件(Mogodb、ElasticSearch )雪花算法生成ID
  2. 以太坊-挣脱数字货币的枷锁
  3. 负电压是怎么产生的?负压电路工作原理详解
  4. [转载]学习让测试更精彩,测试让生命更精彩
  5. 数据库题目之数据库编程
  6. 【vue】弹性布局和九宫格
  7. 用纯HTML5制作网站
  8. 快速入门RabbitMQ(详细)第二篇:RabbitMQ五种工作模式的使用及总结
  9. JVM(java虚拟机)
  10. 基因组所联合多校研发新型DNA断裂检测技术:DEtail-seq