如何解决编译libvpx-1.7.0时的elf64读取失败及汇编错误
解决Ubuntu 20.04编译libvpx-1.7.0的汇编错误问题
问题原因
出现的汇编器错误,核心是编译配置缓存残留导致环境混乱——添加--disable-optimizations后,configure生成的编译规则被修改,即使后续移除该选项,旧缓存文件仍会干扰编译流程;同时vpx_ports/emms_mmx.asm是NASM语法格式,若当前编译流程错误调用GCC的汇编器(as)处理,会触发语法不兼容报错。
解决步骤
1. 彻底清理编译缓存与中间文件
先清空所有生成的配置和编译产物,回到干净源码状态:
make clean rm -rf config.log config.h config.cache libvpx.pc vpx_config.mk
2. 重新执行configure命令
根据需求选择对应命令:
- 保留
--disable-optimizations的版本:
./configure --disable-vp8 --enable-vp9 --enable-libyuv --target=x86_64-linux-gcc --enable-debug --disable-install-docs --log=yes --enable-internal-stats --disable-unit-tests --disable-docs --disable-tools --enable-webm-io --disable-optimizations
- 移除
--disable-optimizations的版本:
./configure --disable-vp8 --enable-vp9 --enable-libyuv --target=x86_64-linux-gcc --enable-debug --disable-install-docs --log=yes --enable-internal-stats --disable-unit-tests --disable-docs --disable-tools --enable-webm-io
3. 确保NASM汇编器已安装
libvpx的部分汇编代码依赖NASM,Ubuntu 20.04默认可能未安装,检查并安装:
# 检查NASM是否安装 nasm -v # 未安装则执行以下命令安装 sudo apt update && sudo apt install nasm
4. 重新编译
执行make命令重新编译:
make -j$(nproc)
备选方案
若上述步骤仍无法解决,可强制禁用汇编优化,改用纯C代码编译(性能会略有下降,但能绕过汇编器兼容问题):
./configure --disable-vp8 --enable-vp9 --enable-libyuv --target=x86_64-linux-gcc --enable-debug --disable-install-docs --log=yes --enable-internal-stats --disable-unit-tests --disable-docs --disable-tools --enable-webm-io --disable-asm
内容的提问来源于stack exchange,提问作者Spring Lee
相关产品推荐
相关产品推荐

