Emscripten编译ffmpeg报错汇总

    技术2026-01-04  9

    注意

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

    Processed: 0.017, SQL: 10