注意
处理报错问题前,先确保你能够完成 你好,世界!中的例子
以便确认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。