【问题标题】:Compiling ffmpeg and using gas-preprocessor on Tiger?在 Tiger 上编译 ffmpeg 并使用气体预处理器?
【发布时间】:2010-11-27 17:44:22
【问题描述】:

初学者尝试在 PowerMac G4、Mac OS X 10.4.11、Xcode 2.5 上编译 ffmpeg 以便在这台 Mac(不是 iOS)上使用。

我从 Stephen Jungels 教程 (link) 开始,虽然它不涵盖 Mac OS X 10.4 本身。我安装 LAME、FAAC/FAAD 和 x264 时没有错误。一切顺利,直到我为 ffmpeg 使用 ./configure:

./configure --enable-shared --enable-libmp3lame --enable-libfaac --enable-libx264 --enable-gpl --enable-nonfree

经过一番处理后,我得到“正在创建 config.mak 和 config.h...”和错误“警告:未找到 GNU 汇编器,安装气体预处理器”。所以我在网上寻找它(https://github.com/yuvi/gas-preprocessor),按照指示将“gas-preprocessor.pl”移动到/usr/local/bin。显然它没有做任何事情,因为重复配置给出了同样的错误。在 ffmpeg 目录中包含 gas-preprocessor.pl 似乎也无济于事。

我是否遗漏了我应该使用 gas-preprocessor.pl 做的事情?

【问题讨论】:

    标签: macos ffmpeg preprocessor osx-tiger


    【解决方案1】:

    我遇到了同样的问题“找不到 GNU 汇编器,安装气体预处理器”

    后来发现我没有正确的文件,因为我在文本编辑器中复制粘贴了代码

    正确的做法是:

    (a) 使用https://github.com/yuvi/gas-preprocessor的下载按钮

    (b) 提取存档

    (c) 删除您已下载并正在试验的任何其他同名文件。

    (d) 复制文件 gas-preprocessor.pl 到 /usr/local/bin

    (e) 如果 a -> d 不起作用,则将文件的权限设置为所有人读写 (777)

    我在编译 ffmpeg 期间阅读 config.log 时发现了这个问题

    【讨论】:

    • 您必须使用特殊版本的 gas-preprocessor.pl 进行 ffmpeg 编译: git://git.libav.org/gas-preprocessor.git 来自 yuvi (github.com/yuvi/gas-preprocessor) 的版本已过时 (3年没有变化)并且不适用于现代 ffmpeg 版本
    【解决方案2】:

    您可能需要使用包含的架构“--arch”标志进行编译,就像在您的配置语句中添加以下选项一样:

    "--arch=ppc"

    注意Git仓库配置文件中的目标架构列表:

    http://git.ffmpeg.org/?p=ffmpeg;a=blob;f=configure;h=a882501c676c6bef9fae53140e6c053a4c7c3c99;hb=HEAD

    Line
     935 ARCH_LIST='
     936     alpha
     937     arm
     938     avr32
     939     avr32_ap
     940     avr32_uc
     941     bfin
     942     ia64
     943     m68k
     944     mips
     945     mips64
     946     parisc
     947     ppc
     948     ppc64
     949     s390
     950     sh4
     951     sparc
     952     sparc64
     953     tomi
     954     x86
     955     x86_32
     956     x86_64'
    

    此外,您可能已经这样做了,但是通过在命令行中键入“configure --help”来仔细阅读配置文件的选项。我确实需要大量的试验和错误才能让它工作。

    而不是“--enable-shared”,尝试:“--disable-shared --enable-static”...我相信这不会尝试编译其他已经编译好的库,这可以是一个很好的如果不需要尝试重新编译它们(这可能会导致错误)。

    另外,另一件事是“--disable-asm”,它将“禁用所有汇编程序优化”,这可能与“参数语法错误”有关……我用谷歌搜索了这个错误,发现有人在构建时遇到了类似的问题PowerPC 的其他内容:gcc.gnu.org/ml/gcc/2006-08/msg00591.html

    还有一种方法可以在配置命令中设置 GCC 选项...使用“--extra-cflags=”,后跟来自 GCC 的选项:gcc.gnu.org/onlinedocs/gcc/Code-Gen- Options.html 我不确定这些选项中有多少有效,但您可以尝试“--extra-cflags=-fno-common”,我相信这会通过将变量保存在单独的块中来影响编译过程中如何处理变量每个目标,而不是将它们集中在一个大块中。不太了解它,但它似乎为我消除了一些错误。

    【讨论】:

    • 嗨,克里斯,感谢您的评论。不幸的是,将 --arch=ppc 添加到配置列表并没有改变任何东西。通过阅读配置帮助文本,我发现 --cc=(compiler) 和 --as=(assembler) 可能对改变我的尝试结果有意义。 cc 应该默认为 'gcc',这看起来对吗?我想知道是否以及如何在 ./configure 行中加入气体预处理器?
    • 将 gas-preprocessor.pl 的副本放入 /opt/local/bin 后,错误“警告:未找到 GNU 汇编器,安装 gas-preprocessor”消失了。嗯,我尝试改变很多东西,我认为这个改变实现了。
    • 接下来,'make' 给了我致命错误:未终止的函数调用 foreach': missing )'。停止。谷歌搜索错误消息将我带到 ffmpeg 邮件列表存档,其中一位开发人员说“make”已经过时了。所以我将“make”升级到当前版本 3.82。
    • 仍然错误:AS libavcodec/ppc/fft_altivec_s.o libavcodec/ppc/fft_altivec_s.S:747:Parameter syntax error (parameter 2) libavcodec/ppc/fft_altivec_s.S:747:Invalid mnemonic 'got (r2)' :787: :794: :1282: :1322: :1329: make: *** [libavcodec/ppc/fft_altivec_s.o] 错误 1
    猜你喜欢
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多