首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用YASM构建x264 : ASM检查失败

用YASM构建x264 : ASM检查失败
EN

Stack Overflow用户
提问于 2017-06-15 16:45:36
回答 2查看 4.1K关注 0票数 4

我的问题是,“我有了新的亚玛斯,我认为x264应该对此很酷,为什么x264对此不酷呢?”

出于某些原因,我正在构建一个CentOS码头映像(基于centos:最新的),其中包含一个从头开始的ffmpeg构建,遵循指南这里。这是个很好的向导,以前对我起过作用,所以我感觉很好。

今天,我在libx264构建点上碰到了一个瓶颈点:具体来说,我说

代码语言:javascript
复制
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问题提到了这个问题,这个问题引出了一个问题。所以,我在我的道路上加入了亚玛斯,像这样:

代码语言:javascript
复制
PATH=/tmp/ffmpeg_sources/yasm:$PATH \
  PKG_CONFIG_PATH="/tmp/ffmpeg_build/lib/pkgconfig" \
  ./configure
  ...etc

这仍然给我们找到了一个没有汇编程序的问题。作为最后一个困惑的解决方案,我明确地告诉了脚本我想要为变量$AS使用什么,因为根据我对配置的快速查看,这看起来就像yasm/nasm的目标所在。该命令变成:

代码语言:javascript
复制
AS=`which yasm`
  PKG_CONFIG_PATH="/tmp/ffmpeg_build/lib/pkgconfig" \
  ./configure
  ...etc

至少给了

发现Yasas1.3.0 最低版本为nasm-2.13 如果您真的想在没有asm的情况下编译,请使用--禁用-asm进行配置。

在config.log中,我看到了以下内容:

代码语言:javascript
复制
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呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-15 17:30:52

旧版本的x264过去默认使用yasm,新版本默认使用nasm。

您可以通过设置覆盖汇编程序,但是,配置检查的指令似乎不兼容yasm。

此外,yasm上一次发布是在2014年,当时正在积极开发中的nasm。

票数 6
EN

Stack Overflow用户

发布于 2020-01-11 17:49:40

这对我来说对OSX有效。

你需要设置像

代码语言:javascript
复制
export ASFLAGS="-f macho64"
export NASM="${OPT}/bin/nasm"
export YASM="${OPT}/bin/yasm"
export AS="${NASM}"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44572813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档