Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Kali Linux 2编译FFMPEG_Linux_Unix_Assembly_Ffmpeg - Fatal编程技术网

为Kali Linux 2编译FFMPEG

为Kali Linux 2编译FFMPEG,linux,unix,assembly,ffmpeg,Linux,Unix,Assembly,Ffmpeg,我正在尝试将FFMPEG安装到Kali Linux 2.0 到目前为止,我一直在尝试使用以下命令: git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg cd ffmpeg ./configure make make install 但是,当我尝试这样做时,会出现以下错误: 我真的很困惑如何解决这个问题,因为我的技能还不算高……我只是碰巧找到了答案,但是 我需要在编译之前安装YASM apt-get install yasm 由于源代码中有

我正在尝试将FFMPEG安装到Kali Linux 2.0 到目前为止,我一直在尝试使用以下命令:

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure
make
make install
但是,当我尝试这样做时,会出现以下错误:


我真的很困惑如何解决这个问题,因为我的技能还不算高……

我只是碰巧找到了答案,但是 我需要在编译之前安装YASM

apt-get install yasm

由于源代码中有大量宏,因此需要对该特定问题进行大量跟踪。第393行内容如下:

DEFINE_IMDCT
寻找那个宏,我们在179行找到它。但它有许多指令和条件,其中任何一个都可能是罪魁祸首。因此,我们首先要做的是
makev=1
打开详细(正常)GNU
make
输出。然后我们看到:

jcomeau@aspire:~/rentacoder/jcomeau/flueon/ffmpeg$nasm-f elf-DPIC-g-f dwarf-I./-I./-Pconfig.asm-I libavcodec/x86/-o libavcodec/x86/imdct36.o libavcodec/x86/imdct36.asm

我们将其改为:

jcomeau@aspire:~/rentacoder/jcomeau/flueon/ffmpeg$nasm-l/tmp/imdct36.lst-f elf-DPIC-g-f dwarf-I./-I./-Pconfig.asm-I libavcodec/x86/-o libavcodec/x86/imdct36.o libavcodec/x86/imdct36.asm

获取列表文件。查看未指定的
操作大小的列表
错误,我们在宏扩展的
级别的第102741行找到它。向上滚动,我们发现第102668行的2级指令为
extractps[%3+%4]、%1、1
,第102583行的1级指令为
STORE m6、m7、outq+16*SBLIMIT、4*SBLIMIT

所以我们回到libavcodec/x86/imdct36.asm,搜索STORE,并在第145行找到它。果然,我们在下面找到了3个
extractps
说明:

extractps [%3 +   %4], %1, 1
extractps [%3 + 2*%4], %1, 2
extractps [%3 + 3*%4], %1, 3
我们将其改为:

extractps dword [%3 +   %4], %1, 1
extractps dword [%3 + 2*%4], %1, 2
extractps dword [%3 + 3*%4], %1, 3
假设32位操作数。果不其然,它在这之后完成了构建,而无需安装
yasm


我怎么知道它不应该是
qword
?我不知道,但这没有意义,因为
extractps
只使用32位目标:“在imm8指定的源偏移量处从xmm2提取一个单精度浮点值,并将结果存储到reg或m32。如果reg是r64,则r64的上32位为零。”().

您的屏幕截图难以辨认,在S.O.上被认为是不好的形式。当从您的终端到Q中的纯拷贝/粘贴将使您的Q具有可读性和可搜索性(专家查找某些短语并使用其浏览器的搜索功能)时,将此类项目包括在内。请用问题的纯文本编辑你的问题,在突出显示的文本上使用编辑框左上角的
{}
工具,以保持代码/数据/errMsgs/等的正确格式。祝你好运。谢谢,我希望现在它可以接受。这个问题上的dupe标志非常误导。配置脚本测试yasm的存在,如果它不存在,但nasm存在,它将设置makefile以使用nasm。但是汇编语言显然不被nasm所接受。
extractps dword [%3 +   %4], %1, 1
extractps dword [%3 + 2*%4], %1, 2
extractps dword [%3 + 3*%4], %1, 3