emscripten 在 ubuntu 上的安装和配置相对比较顺利,但在Windows上遇到不少坑
步骤:

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

这个repo只是包含了sdk的安装程序,然后靠emsdk命令来安装真正的emscrtipen sdk和相关依赖

2. 进入 emsdk 目录,执行 ./emsdk install latest

在Windows上会下载 Java, Node, Python 和 fastcomp; fastcomp 就是 emscripten 的 sdk
下载的目录是 ./zips, 如果下载较慢,可以直接拷贝下载地址到迅雷,然后拷贝到 zips下,注意一定要拷贝,不能剪切,因为 该命令 会删除掉下载的文件,另外,新版的 下载脚本 会忽略 zips 中已有的文件,会覆盖下载,这时需要修改 emsdk.py, 具体修改如下 git diff 的结果

@@ -1258,7 +1258,7 @@ def download_and_unzip(zipfile, dest_dir, download_even_if_exists=False, filenam# target directory, since it may be a new version of a tool that gets# installed to the same place (that is, a different download name# indicates different contents).
-  download_even_if_exists = True
+  # download_even_if_exists = True    // liyh download by xunleireceived_download_target = download_file(url, zips_subdir, download_even_if_exists, filename_prefix)if not received_download_target:
@@ -1722,8 +1722,8 @@ class Tool(object):# if we are downloading a zip, we will unpack and delete it after immediately anyhow,# so there is no need to look for an existing one (which may have been left behind# due to an error in the past)
-        if url.endswith(ARCHIVE_SUFFIXES):
-          download_even_if_exists = True
+        #if url.endswith(ARCHIVE_SUFFIXES):   # liyh download by xunlei
+        #  download_even_if_exists = Truefilename_prefix = getattr(self, 'zipfile_prefix', '')success = download_and_unzip(url, self.installation_path(), download_even_if_exists=download_even_if_exists, filename_prefix=filename_prefix)else:

3. 执行 ./emsdk activate latest

4. 设置环境变量, emsdk_env.bat,

建议不要每次执行这个脚本,而是将环境变量直接配置到Windows系统中,原因是这个脚本会冲掉vs的环境变量,即:如果先进入了 vs 的 Developer Command Prompt 然后执行它,会导致vs的环境变量被干掉, 如果不想设置到系统中,就需要先执行emsdk_env.bat 然后再执行 vs的 Developer Command Prompt 的bat(“C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat”)

5. 环境变量都ok后就能执行 emconfigrure cmake .

即 在 原来CMake . 的命令前加上了 emconfigrure, 按文档说明,emconfigrure主要是修改了 cc compile 等CMake变量
如果要使用 Windows 里的 nmake,就需要执行 emconfigure cmake . -G “NMake Makefiles” 告诉 cmake 生成 nmake 脚本
如果CMakeLists.txt 中没有用到 target_link_libraries 命令,会已有一个错误提示

shared:ERROR: no input files
note that input files without a known suffix are ignored, make sure your input files end with one of: ('.c', '.C', '.i', '.cpp', '.cxx', '.cc', '.c++', '.CPP', '.CXX', '.CC', '.C++', '.ii', '.m', '.mi', '.mm', '.mii', '/dev/null', '.bc', '.o', '.obj', '.lo', '.dylib', '.so', '.a', '.ll', '.h', '.hxx', '.hpp', '.hh', '.H', '.HXX', '.HPP', '.HH')

可以忽略,不影响最后的编译,如果要屏蔽他,可以随便加入一个库如: target_link_libraries(app pthread)

6. 最后一步执行 emmake nmake 来 完成编译

另外:尝试了在Windows上使用 WSL (Windows Subsystem Linux)来进行emscripten 的环境配置,但是没有成功,卡在了./emsdk install latest,这一步会下载依赖的安装程序,安装程序会做调用tar来解包,解包过程中 出现了 tar: Cannot create symlink to Operation not permitted 的错误,初步怀疑是文件系统(exFAT)的原因,没有深究了
后续发现了原因,就是因为文件系统的原因,尝试在WSL中的这个磁盘上创建一个软链接,返回了相同的错误,至于如何解决,没有深究了。

1. 执行 ./emsdk install latest 时 npm 网络访问失败

始终停在 Running post-install step: npm ci … 然后 timeout
原因是 npm 访问的站点无法访问,需要配置registry,指向淘宝
执行如下命令,就ok
npm config set https-proxy null
npm --registry https://registry.npm.taobao.org info underscore
在 文件 ~/.npmrc 中添加
registry = https://registry.npm.taobao.org/

emscripten cmake 环境配置相关推荐

  1. NDK01-打包静态库 动态库在mk和cmake环境配置使用

    动态库和静态库 动态库: libxxx.so 运行的时候,才会去加载,加载一次就在内存中存在副本,其他地方使用就都是公用的.使用场景就是 高德百度sdk对外开房 静态库: libxxx.a 编译期把静 ...

  2. 基于Ubuntu20.04配置Emscripten开发环境

    Emscripten环境配置 1.简介 2.依赖环境 3.环境搭建 4.辅助调试环境 1.简介 Emscripten 编译器基于 LLVM ,该编译器可以将 C / C++ 的代码编译成 JavaSc ...

  3. Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试

    由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...

  4. 【C++ 语言】Visual Studio 配置 FFMPEG 开发环境 ( VS2019 CMake 环境安装 | 下载 FFMPEG 开发包 | 配置 FFMPEG )

    文章目录 Visual Studio 2019 社区版 CMakeList 开发环境安装 创建 FFMPEG 配置项目 FFMPEG 开发包下载 FFMPEG 头文件 静态链接库 ( .lib ) 动 ...

  5. windows10下Qt环境OpenCV配置【CMake环境】

            对于刚开始了解OpenCV或是用不到OpenCV_contrib库的情况,不建议自己编译OpenCV.交叉编译最大的问题就是无法正常下载需要的库.早些年玩OpenWRT编译一次需要几天 ...

  6. 安装Emscripten编译环境

    安装Emscripten编译环境 1.各类安装工具让它一键安装 $ sudo apt update $ sudo apt install vim openssh-server git curl wge ...

  7. qt程序 html安装,qt webassembly emscripten build 环境搭建

    环境搭建 本文主要是针对ubuntu/mac编译环境搭建和调试环境 可以直接参考下面的dockerfile 1.运行环境 选择了虚拟机里安装了ubuntu版本和内核号如图 首先下载 # Get the ...

  8. 一次搞定OpenCV源码及扩展模块的编译与环境配置

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|计算机视觉工坊 版本:VS2017.CMake3.12. ...

  9. 开发环境配置--Ubuntu+Qt4+OpenCV(三)

    同系列文章 1. 开发环境配置--Ubuntu+Qt4+OpenCV(一) 2. 开发环境配置--Ubuntu+Qt4+OpenCV(二) 3. 开发环境配置--Ubuntu+Qt4+OpenCV(三 ...

最新文章

  1. 基于C++与VS2012的HDF5文件处理(二)
  2. Android MVC结构的浅见【转】
  3. 计算机电容的作用,电容和电感的作用
  4. earning Multi-Domain Convolutional Neural Networks for Visual Tracking
  5. UIView的layoutSubviews和drawRect方法何时调用
  6. MQTT protocol level的处理
  7. redis 基本类型和命令(一)
  8. 二次扩增产物条带弥散_PCR实验操作常见解决方法
  9. node.js 使用domain模块捕获异步回调中的异常
  10. 7-9 一元多项式的乘法与加法运算 (20 分)
  11. ORB-SLAM 解读(五) 地图点投影进行特征匹配
  12. android.mk 依赖关系,Android NDK学习(二):编译脚本语法Android.mk和Application.mk
  13. 泛微 linux mobile手册,泛微E-Mobile5.0服务端安装手册.doc
  14. 华为云学习笔记(二)
  15. android 服务自动运行怎么办,Android服务开机自动运行
  16. 导航系统中里程计研究综述
  17. 从计算机硬件系统来看 不管计算机配置,计算机组装与维修章节练习题201311
  18. ResizeObserver loop limit exceeded报错解决方案
  19. 山东科技大学计算机学院奖学金,山东科技大学:一份特殊“奖学金”
  20. 网安之php开发第十四天

热门文章

  1. 容联七陌进击:在大模型到来的4个月
  2. 细谈 Apple 处理器性能如何,苹果M1芯片
  3. 进制转换 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
  4. 计算机程序的构造和解释(第二版)笔记
  5. PDMReader 数据字典快速浏览工具
  6. Bugku Crpyto writeup --道友不来算一算凶吉?
  7. 程序员一定要远离:它是万恶之源、万罪之根!
  8. 100%与100vh/100vw的区别,为什么有时候100%不生效
  9. 100vh与100%的区别
  10. Linux CentOS下安装SWIG方法