我的问题是,“我有了新的亚玛斯,我认为x264应该对此很酷,为什么x264对此不酷呢?”
出于某些原因,我正在构建一个CentOS码头映像(基于centos:最新的),其中包含一个从头开始的ffmpeg构建,遵循指南这里。这是个很好的向导,以前对我起过作用,所以我感觉很好。
今天,我在libx264构建点上碰到了一个瓶颈点:具体来说,我说
PKG_CONFIG_PATH="/tmp/ffmpeg_build/lib/pkgconfig" \
./configure \
--prefix="/tmp/ffmpeg_build" \
--bindir="/tmp/bin" \
--enable-static我得到了回复
找不到汇编程序 最低版本为nasm-2.13 如果您真的想在没有asm的情况下编译,请使用--禁用-asm进行配置。
这太出乎意料了。我有雅玛斯,我理解这是为了做nasm做得更好的事情,2)成为雏菊最新鲜的现代版本,因为我大约一小时前从它的回购中取出它,并在大约59分钟前建造了它。至于它的价值,nasm也在盒子上,因为指令要求它,但它低于他们的声明版本(即"NASM版本2.10.07编译于2014年6月9日“)
所以似乎找不到雅玛斯。还有一个StackExchange问题提到了这个问题,这个问题引出了一个问题。所以,我在我的道路上加入了亚玛斯,像这样:
PATH=/tmp/ffmpeg_sources/yasm:$PATH \
PKG_CONFIG_PATH="/tmp/ffmpeg_build/lib/pkgconfig" \
./configure
...etc这仍然给我们找到了一个没有汇编程序的问题。作为最后一个困惑的解决方案,我明确地告诉了脚本我想要为变量$AS使用什么,因为根据我对配置的快速查看,这看起来就像yasm/nasm的目标所在。该命令变成:
AS=`which yasm`
PKG_CONFIG_PATH="/tmp/ffmpeg_build/lib/pkgconfig" \
./configure
...etc至少给了
发现Yasas1.3.0 最低版本为nasm-2.13 如果您真的想在没有asm的情况下编译,请使用--禁用-asm进行配置。
在config.log中,我看到了以下内容:
checking whether /tmp/bin/yasm supports vmovdqa32 [eax]{k1}{z}, zmm0... no
Failed commandline was:
--------------------------------------------------
/tmp/bin/yasm conftest.asm -I. -I$(SRCPATH) -DARCH_X86_64=1 -I$(SRCPATH)/common/x86/ -f elf64 -o conftest.o
conftest.asm:1: error: instruction expected after label
conftest.asm:1: warning: ignoring unrecognized character `{'
conftest.asm:1: warning: ignoring unrecognized character `}'
conftest.asm:1: warning: ignoring unrecognized character `{'
conftest.asm:1: warning: ignoring unrecognized character `}'
--------------------------------------------------
Failed program was:
--------------------------------------------------
vmovdqa32 [eax]{k1}{z}, zmm0
--------------------------------------------------这是怎么回事?我的假设是,亚玛斯空降取代nasm不好吗?yasm对此有用吗,但我没有提供正确的信息给./configure?我关于为CentOS构建ffmpeg的指导是不是已经过时了,而我应该更加努力地获得一个现代的nasm呢?
发布于 2017-06-15 17:30:52
旧版本的x264过去默认使用yasm,新版本默认使用nasm。
您可以通过设置覆盖汇编程序,但是,配置检查的指令似乎不兼容yasm。
此外,yasm上一次发布是在2014年,当时正在积极开发中的nasm。
发布于 2020-01-11 17:49:40
这对我来说对OSX有效。
你需要设置像
export ASFLAGS="-f macho64"
export NASM="${OPT}/bin/nasm"
export YASM="${OPT}/bin/yasm"
export AS="${NASM}"https://stackoverflow.com/questions/44572813
复制相似问题