2

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

我从 Stephen Jungels 教程(链接)开始,虽然它本身并不涵盖 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 做的事情?

4

2 回答 2

4

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

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

正确的做法是:

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

(b) 提取档案

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

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

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

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

于 2011-03-15T05:15:21.633 回答
0

您可能需要使用包含的架构“--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”,我相信这会影响编译过程中变量的处理方式,方法是将它们保存在每个目标的单独块中将它们集中在一个大块中。不太了解它,但它似乎为我消除了一些错误。

于 2010-12-01T08:53:27.993 回答