2010-06-06 80 views
2

这是将静态库包含到iPhone或iPad应用程序中的最佳方法吗?将静态库附加到iphone/ipad应用程序

我可以选择

  • 编译库提供合适的平台,建立一个库文件与ar实用程序,然后作为一个框架添加到项目
  • 包括图书馆.C的源/ .h并将它们与应用程序一起编译

第一种方法似乎更简单,因为我不会在乎管理我想包含的库的所有特定设置,但是如何创建库bot机器人h用于iPhone和iPad,并允许xcode在链接时使用正确的库?

第二种方法似乎更复杂,因为xcode会考虑编译我的应用程序和库(使用不同的设置),那我应该怎么走?我可以轻松地添加lib的源代码,但是我必须包含make脚本以允许xcode使用它们以正确的方式构建。

有关如何进行的任何建议?我试图包括的图书馆是libssh。 (我知道这个库当然已经编译并在iPhone上成功尝试过了)

在此先感谢。

回答

1

我会去第一种方法。

您应该建立两个不同版本的库,一个用于iPhone,一个用于iPad。这些必须是包含不同架构的胖库(用于iPhone 3G的armv6,用于iPhone 3GS的armv7,用于iPhone模拟器的i386,用于iPad的另一个用于armv7和i386)。

基本上你会为iPhone构建三个不同的版本,然后使用lipo工具将它们合并在一个胖文件中。

然后,您再为iPad构建两个不同的版本,并使用lipo将它们合并在一起。请注意,您不能在iPad上重复使用原本为iPhone编译的armv7和i386版本,因为您需要使用属于两个不同SDK(3.1为iPhone,3.2为iPad)的编译器构建它们。

我不知道如果lipo会允许你合并成一个文件两个armv7或两个i386版本的库没有抱怨。你可能想尝试一下,因为在这种情况下,你可以在整个过程结束时只提供一个胖库。

相关问题