emcc全称 emscripten,最重要的功能就是让网页js调用c/c++ 成为可能,是我们基于webassembly搭建网页播放器必须依赖的编译工具. emcc官网的搭建教程较为简单,安装过程中最大的麻烦在于,编译依赖的各种库的安装,特别是版本.
视频课程以及源码下载:
https://edu.csdn.net/course/detail/35615
章节列表:
- 搭建webassembly网页播放器(一)—centeros 虚拟环境搭建
- 搭建webassembly网页播放器(二)—emcc环境搭建
- 搭建webassembly网页播放器(三)—emcc编译ffmpeg编译库
- 搭建webassembly网页播放器(四)—网页调用ffmpeg.js单元测试用例
- 搭建webassembly网页播放器(五)—网页播放器开发
- 搭建webassembly网页播放器(六)—websocket后台服务程序
搭建webassembly网页播放器(二)
glic依赖库注意事项
emsdk必须依赖glibc,但是glibc的安装需要特别注意,因为版本太多了,这里面还牵扯到第一个Center OS版本的问题.
在第一章说过,我们选择的是Center OS 7的版本,CenterOS7/8的gcc/g++有一个很大的区别:
Center OS 7: 最高支持到c++11
Center OS 8: 最高支持到C++ 14、
大家可以通过指令 : man gcc 查看最大支持到C++几.
glibc最新版本需要 c++ 14/17 这些高级版本的支持,而我们的Center OS 7的gcc是不支持的,因此我们要选择一个合适的版本或者手动升级gcc。
glibc下载地址:http://ftp.gnu.org/gnu/glibc/
这里我们选择的是 2.19版本
编译:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.19.tar.gz
tar -xvf glibc-2.19.tar.gz
cd glibc-2.19
mkdir build
cd build
../configure -prefix=/usr/
make -j12
sudo make install
编译成功
emsdk安装
官网下载地址:
https://emscripten.org/docs/getting_started/downloads.html
一个注意事项:
在第一篇中,我们介绍了如何在构建共享文件夹,但是共享文件夹里面是无法使用软链接的(类似windows的桌面快捷),但是emsdk需要使用软链接的,因此,我们在/mnt/work目录下单独的下载和编译emsdk.
1. 安装python3,cmake,bzlip2,zlib,zlib-devel
yum install python3
yum install cmake
yum install git
注意 python版本一定要是python3,不能是python2,不兼容python2.
格外注意
yum -y install bzip2
yum -y install zlib zlib-devel
因为中途下载的时候,首先会下载压缩文件 wasm.tbz2,然后解压,解压需要用到bzip2
下载完成后,没有bzip2会报如下的错误:
安装完依赖工具后,开始正式下载:
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
git pull
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
注意依赖网速,大家慢慢耐心下载即可。
碰到这种卡着半天不动的情况,就先按ctrl+c终止,然后再下.
emcc -v
如下输出表示安装成功:
2. 配置emsdk到环境变量
同步环境配置,这样我们就不用每次启动一个终端都来/mnt/work/emsdk 下执行 soruce ./emsdk_env.sh了.
vim /etc/profile,
使配置的环境变量立即生效:
source /etc/profile.