繁体   English   中英

尝试为iPhone编译x264和ffmpeg-“文件中缺少所需的架构臂”

[英]Trying to compile x264 and ffmpeg for iPhone - “missing required architecture arm in file”

我正在尝试编译x264以在iPhone应用程序中使用。 我在此处看到有关如何编译ffmpeg以便在平台上使用的说明: http : //lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-October/076618.html ,但似乎找不到任何内容完成了在iPhone上编译x264的工作。 我找到了以下源代码树: http : //gitorious.org/x264-arm ,它似乎支持ARM平台。

这是我的配置行:

./configure --cross-prefix=/usr/bin/ --host=arm-apple-darwin10 --extra-cflags="-B /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/ -I /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/"

...并在内部configure我使用加气预处理程序脚本(上面的第一个链接)作为我的汇编程序:

gas-preprocessor.pl gcc

当我开始编译时,它会分块一段时间,然后吐出这些警告和大量未定义的符号:

ld: warning: option -s is obsolete and being ignored
ld: warning: -force_cpusubtype_ALL will become unsupported for ARM architectures
ld: warning: in /usr/lib/crt1.o, missing required architecture arm in file
ld: warning: in /usr/X11R6/lib/libX11.dylib, missing required architecture arm in file
ld: warning: in /usr/lib/libm.dylib, missing required architecture arm in file
ld: warning: in /usr/lib/libpthread.dylib, missing required architecture arm in file
ld: warning: in /usr/lib/libgcc_s.1.dylib, missing required architecture arm in file
ld: warning: in /usr/lib/libSystem.dylib, missing required architecture arm in file
Undefined symbols:

我的猜测是问题与“缺少所需的体系结构中的文件”警告有关...有什么想法吗?

过渡到XCode 4.3后,许多开发人员在编译FFMpeg源代码时遇到问题。 这主要是由于事实,与以前的版本不同,XCode4.3是捆绑提供的,并且最初不包含命令行工具。

我们试图构建通用脚本; 您可以在此处下载用于构建FFMpeg以及XCode4.3的完整环境: https : //github.com/melnikov/ffmpeg4iphone_4.3

先决条件:

  1. 您必须在Mac上安装XCode4.2或4.3
  2. 您必须安装XCode命令行工具(可以通过XCode-> Preferences-> Downloads安装)
  3. 您必须为Mac安装git。

说明和解释:

  1. 将构建脚本放入某个目录(例如,/ tmp / ffbuild),在其上设置可执行标志(通过运行'chmod + x ./build)
  2. 运行脚本。 它会做什么:
  3. 它将把FFMpeg的最新版本签出到FFmpeg目录中(如果您已经将FFmpeg签出到当前目录中,则可以放心地注释掉该文件)
  4. 它将尝试检测Xcode.app的位置,如果未安装Xcode,它将退出
  5. 它将尝试在Xcode.app内定位gcc并在找不到时退出(如果未安装Xcode命令工具,则可能会发生)
  6. 如果以上步骤运行顺利,脚本将
  7. 创建build_results文件夹
  8. 随后将运行FFmpeg configure并针对3种不同的体系结构(armv6,armv7,i386)进行构建,并将它们放入build_results文件夹内的相应目录中
  9. 将运行lipo并创建通用库(并将它们放入build_results / Universal)文件夹中。

顺便说一句,我已经在许多同事的Mac上测试了该脚本,其中一些往往不会在mdfind中为Xcode.app返回任何结果。 因此,如果脚本将返回“未安装Xcode”,请随时将XCODEPATH变量设置为Xcode.app的路径

检查此站点: http ://github.com/gabriel/ffmpeg-iphone-build文件:build-x264-armv6

你会喜欢的!

再见,祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM