3

问题是关于将 x86_64 macOS 可执行文件静态链接到 libavcodec、libavdevice 等,这些文件有一些针对独立构建的目标文件,因为它们使用 YASM 无法在二进制文件中嵌入 macOS“标签”(请参阅​​ Building for macOS,但链接中为免费建立的目标文件以获取有关该问题的详细信息)。

在 Xcode 11.6 下一切正常 - 以下消息在这里,但它们是警告。随着 Xcode 12 的更新,它们变成了一个错误。如何让他们再次警告?我在 ld 手册页中找不到任何相关内容。

ld:在 ffmpeg/lib/libavcodec.a(aacencdsp.o) 中,为 macOS 构建,但在为独立构建的目标文件中链接,适用于架构 x86_64

4

1 回答 1

2

我没有找到将错误恢复为警告的选项。Apple 已经在 XCode 的几个版本中警告我们这个问题,并且警告已经变成了一个错误。

在修改 NASM 或者我们可以使用其他汇编器之前,允许我在我的应用程序中构建和链接 libav 库的唯一选项是在编译 ffmpeg 时禁用汇编。

./configure --disable-asm

这适用于我的情况,因为非汇编代码路径的性能在我的桌面创作工具中是可以接受的。基于服务器的渲染器仍然使用汇编代码路径,因为它是基于 linux 的。

您可能必须配置您在 ffmpeg 构建中包含的任何库以禁用程序集。

再一次,这对于我的案例来说是一个可以接受的解决方案,因为非汇编代码路径对于我的用例来说足够快。

于 2020-10-01T19:09:23.593 回答