我想知道如何为iOS“胖”库制作一个makefile

时间:2011-09-06 23:57:06

标签: ios ios4 xcode4 makefile

我想创建一个(非xcode)makefile来创建一个胖库(模拟器+设备),可以使用直接调用基本命令行工具的makefile导入到XCode项目中(不运行XCODE)从命令行,但MAC Gcc和它的相关实用程序) - 这是为.m,.mm,.c和.cpp源文件。

理想的是找到一个适用于简单库的示例(而不是通过调用makefile生成器来生成几乎非人类可读的makefile)

无论如何,任何人都知道这样做的事情或适当的机制吗?

从XCode项目中提取编译器标志的能力也非常方便:)

目的是我想在我的跨平台库中添加一个模块,以便将它们集成到iOS项目中。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以通过查看构建详细信息来提取编译器标志,或者更简单地从命令行运行xcodebuild

要创建胖二进制文件,您可以通过传递多个-arch参数来利用Mac OS X平台上的编译器工具链的内置支持,如下所示:

clang -arch i386 -arch x86_64 -framework Foundation simple.m -o simple

或者,您为每个所需的体系结构构建一次二进制文件,然后使用lipo将所有这些二进制文件包装到单个胖二进制文件中。使用移植的Unix软件时这很方便;只需每次更改构建结果目录,然后在使用lipo构建后将它们全部粉碎。假设您有simple-i386simple-x86_64,那么您可以执行以下操作:

lipo simple-i386 simple-x86_64 -create -output simple

这将创建一个名为simple的胖二进制文件,其中包含simple-i386simple-x86_64

答案 1 :(得分:0)

好的 - 我发现这是一个很棒的HOWTO o使用XCODE构建一个胖库,概述了该过程以及如何创建项目

http://blog.boreal-kiss.net/2011/03/15/how-to-create-universal-static-libraries-on-xcode-4/

作为XCode和iOS开发的新手,我必须发现一些事情。

  • 您可以查看构建的实际命令行输出,以查看gcc标志是什么。 查看 - >导航器 - >日志 - 然后控制点击消息列表以“展开所有成绩单” 从所选构建的构建输出中查看stdout和stderr。

  • 您可以通过将命令和参数设置为登录shell来执行带有.bashrc和.bash_profile环境设置的“外部构建工具”:“bash --login -c'mybuildtool [my tools args] $( ACTION)',因此绕过必须处理难以维护的MacOSX启动设置等。这适用于使用ruby和rake以及制作等等。