编译ffmpeg并在Tiger上使用gas-preprocessor?

时间:2010-11-27 17:44:23

标签: macos ffmpeg preprocessor osx-tiger

初学者尝试在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。一切顺利,直到我使用./configure for ffmpeg:

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

经过一些处理后,我得到“正在创建config.mak和config.h ...”并出现错误“警告:未找到GNU汇编程序,安装gas-preprocessor”。所以我在线查找(https://github.com/yuvi/gas-preprocessor),按照说明将“gas-preprocessor.pl”移动到/ usr / local / bin。显然它没有做任何事情,因为重复配置会产生相同的错误。在ffmpeg目录中使用gas-preprocessor.pl似乎也没有帮助。

我错过了一些我应该用gas-preprocessor.pl做的事情吗?

2 个答案:

答案 0 :(得分:4)

我有同样的问题“未找到GNU汇编程序,安装gas-preprocessor”

后来事实证明我没有正确的文件,因为我复制粘贴了文本编辑器中的代码

正确的做法是:

(a)使用https://github.com/yuvi/gas-preprocessor

上的下载按钮

(b)提取档案

(c)删除您下载的任何其他文件,并且您正在尝试使用。

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

(e)如果a - >设置文件的权限以供所有人(777)读取和写入。 d不起作用

当我在编译ffmpeg

期间读取config.log时,我发现了这个问题

答案 1 :(得分:0)

您可能需要使用包含的体系结构“--arch”进行编译,就像在configure语句中添加以下选项一样:

“ - 拱= 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

并且,有一种方法可以在configure命令中设置GCC选项...使用“--extra-cflags =”后跟GCC中的选项:gcc.gnu.org/onlinedocs/gcc/Code-Gen- Options.html我不确定这些选项有多少可行,但您可以尝试“--extra-cflags = -fno-common”,我认为这会影响变量在编译过程中的处理方式,方法是将它们保存在不同的块中每个目标而不是将它们集中在一个大块中。真的不太了解它,但它似乎为我安静了一些错误。