macOS Catalina 10.15.1环境下编译的ffmpeg无法运行,启动就崩溃

栏目: IT技术 · 发布时间: 4年前

内容简介:我在一台即使是这已经是我第无数次被这个

我在一台 macOS Catalina 10.15.1 的机器上,源码编译ffmpeg,生成的ffmpeg和ffprobe等所有可执行程序都无法正常运行。一运行就报段错误崩溃。就像这样:

$./ffmpeg
[1]    13651 segmentation fault  ./ffmpeg

即使是 ./configure 时不加任何参数也不行。

这已经是我第无数次被这个 macOS 10.15 新版本系统坑了。。

在这个 帖子 的末尾,提供了解决方案,在 ./configure 加上 --extra-cflags="-fno-stack-check" 即可,帖子的原文内容如下:

It seems the 10.15 toolchain turns on “-fstack-check” by default for Clang, like some Linux distributions do. You can see that here :

Stack checking is on by default on all platforms to prevent memory corruptions. (25859140)

Some discussion here traces it back to AVX, although turning off AVX (“–disable-avx”) didn’t seem to help building FFMPEG. (Nor, as skyzyx saw above, did turning off ASM entirely.)

Accordingly, adding “-fno-stack-check” to “CFLAGS” - f.ex., by ‘–extra-cflags=”-fno-stack-check”‘ when configuring works around the problem and builds a functioning FFMPEG.

Don’t quite know what that means for us. I imagine having stack checking on is desirable, but there’s at least a workaround while the source is further investigated.

另外帖子中也有关于用lldb调试ffmpeg,对应的崩溃信息,大家如果遇到同样的问题,也可以调起来确定下是不是这个原因引起的。

$ lldb $(which ffmpeg)
(lldb) target create "/usr/local/bin/ffmpeg"
Current executable set to '/usr/local/bin/ffmpeg' (x86_64).
(lldb) run
Process 95311 launched: '/usr/local/bin/ffmpeg' (x86_64)
Process 95311 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    frame #0: 0x00007fff6e08c366 libdyld.dylib`stack_not_16_byte_aligned_error
libdyld.dylib`stack_not_16_byte_aligned_error:
->  0x7fff6e08c366 <+0>: movdqa %xmm0, (%rsp)
    0x7fff6e08c36b <+5>: int3   
    0x7fff6e08c36c <+6>: nop    
    0x7fff6e08c36d <+7>: nop    
Target 0: (ffmpeg) stopped.
(lldb) run --help
There is a running process, kill it and restart?: [Y/n] y
Process 95311 exited with status = 9 (0x00000009) 
Process 95317 launched: '/usr/local/bin/ffmpeg' (x86_64)
Process 95317 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    frame #0: 0x00007fff6e08c366 libdyld.dylib`stack_not_16_byte_aligned_error
libdyld.dylib`stack_not_16_byte_aligned_error:
->  0x7fff6e08c366 <+0>: movdqa %xmm0, (%rsp)
    0x7fff6e08c36b <+5>: int3   
    0x7fff6e08c36c <+6>: nop    
    0x7fff6e08c36d <+7>: nop    
Target 0: (ffmpeg) stopped.

原文链接: https://pengrl.com/p/20042/

原文出处: yoko blog ( https://pengrl.com )

原文作者: yoko ( https://github.com/q191201771 )

版权声明:本文欢迎任何形式转载,转载时完整保留本声明信息(包含原文链接、原文出处、原文作者、版权声明)即可。本文后续所有修改都会第一时间在原始地址更新。

macOS Catalina 10.15.1环境下编译的ffmpeg无法运行,启动就崩溃


以上所述就是小编给大家介绍的《macOS Catalina 10.15.1环境下编译的ffmpeg无法运行,启动就崩溃》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python编程无师自通

Python编程无师自通

[美] 科里·奥尔索夫(Cory Althoff) / 宋秉金 / 人民邮电出版社 / 2019-1-1 / 59

畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一。 作者从文科毕业,通过自学编程转行为专业程序员,在硅谷工作多年后成功技术创业。本书不仅教读者如何使用Python语言编程,还会介绍其他书中所忽略的、编程初学者应该了解并掌握的其他所有知识点。 本书作者是一名自学成才的程序员,经过一年的自学,掌握了编程技能并在eBay找到了一份软件工程师的工作。本书是作者结合个人经验写......一起来看看 《Python编程无师自通》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具