【问题标题】:I want to know how to make a makefile for iOS "fat" library我想知道如何为iOS“胖”库制作一个makefile
【发布时间】:2011-09-06 23:57:06
【问题描述】:

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

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

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

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

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

谢谢!!

【问题讨论】:

标签: ios ios4 xcode4 makefile


【解决方案1】:

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

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

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

或者,您为每个所需的架构构建一次二进制文件,然后使用lipo 将所有这些二进制文件包装到一个胖二进制文件中。这在使用移植的 Unix 软件时很方便;每次只需更改构建结果目录,然后在使用lipo 构建后将它们全部粉碎。假设你有simple-i386 和simple-x86_64,你会这样做:

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

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

【讨论】:

  • 这对于修改不同设置的 makefile 非常有帮助,是否有一个完整的 makefile 示例可以从源代码、链接编译并使其可运行(通过模拟器或部署)a "你好世界”没有 XCode ???
  • 我在 xcode 4.0.2 上找不到“构建详细信息”,也无法在任何地方找到对它的引用 - 只有一个“日志”,其中的详细信息已被删除。跨度>
  • @peterk:从命令行运行 xcodebuild 并检查输出。
  • 谢谢 - 我正在尝试 :) xcodebuild -project myProject.xcodeproj -alltargets,我得到“代码签名错误:身份‘iPhone 开发者’不匹配任何证书/私钥对默认钥匙串。”我安装了 iOS sdk 4.0.x 并且能够使用 xcode 构建项目。我想我现在需要解决一些路径/环境问题:)
【解决方案2】:

好的 - 我发现这是一个很棒的 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。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 2016-07-18
    相关资源
    最近更新 更多