Emscripten编译ffmpeg报错汇总

注意

处理报错问题前,先确保你能够完成 你好,世界!中的例子
以便确认emcc命令执行的环境安装完毕。

按照你面临的报错反馈,在下文查找对应问题解决

0、emcc命令使用报错汇总:


编译hello.C 提示缺少

“no module named ‘distutils.spawn’”

那么你需要安装 python3-distutils

Sudo apt-get install python3-distutils


WARNING:pkg-config not found,library detection may fail
在这里插入图片描述
执行 sudo apt-get install pkg-config


emcc 将c文件和FFmpeg相关的.bc文件编译时报错:
fatal error:‘libavcodec/avcodec.h’ file not found
找不到****头文件,此类报错。
这说明编译器找不到该头文件,你需要在emcc命令后添加该头文件所在路径 ,例如 该头文件在 dist/include 文件夹下,

emcc -I/home/kinkey/ffmepg/dist/include (后面省略)


fatal error: sys/cdefs.h: No such file or directory

解决方法:

sudo apt-get purge libc6-dev
sudo apt-get install libc6-dev
sudo apt-get install libc6-dev-i386

1、执行emconfigure时的报错汇总


WARNING root: LLVM version appears incorrect (seeing “(/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm–project”, expected “3.4”)
INFO root: (Emscripten: Running sanity checks)
CRITICAL root: Cannot find /home/kinkey/download/emsdk/upstream/bin/lli, check the paths in ~/.emscripten

涉及关键词LLVM、Emscripten的问题,一般都是——在当前终端窗口没有激活emcc命令

进入emsdk文件夹 ,执行
./emsdk activate latest

source ./emsdk_env.sh
最后使用emcc -v检查一遍。

当你遇到关于ranlib的报错

在这里插入图片描述
检查你输入的emconfigure命令中,是否包含了

--ranlib=emranlib

若果没有,添加上该配置语句。

2、执行Make时的错误:


error: unable to open output file ‘libavdevice/alldevices.o’: ‘Operation not permitted’

解决方法:以管理员身份执行make
sudo root
进入管理员模式后,再执行make。


版权声明:本文为weixin_42651102原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。