关于iphone:将静态库链接到XCode 4中的iOS项目

Linking a static library to an iOS project in XCode 4

我有一个编译到静态库的项目(AQGridView),但我似乎无法将它添加到我的项目中。

将项目拖到我的项目中会创建一个工作区,如果我尝试从DerivedData目录链接libAQGridView.a文件,它就不会将其识别为库。我不知道我做错了什么。

这是AQGridView项目。有人特别知道如何在Xcode4项目中使用它吗?


我这样做如下:

  • 在静态库项目中拖动。如果您在Xcode中打开了静态库项目,现在就关闭它。
  • 在项目导航器(要添加静态库的项目)中选择主项目,在编辑器的左侧列的标题目标下,选择主项目的目标并导航到"构建阶段"选项卡。
  • 单击"+"作为"目标依赖项",然后从添加的静态库项目中添加库图标"目标依赖项"。
  • 单击"+"将二进制文件与库链接,并添加文件夹"workspace"下的库图标。
  • 如果静态库项目中的头是通过这种方式链接的,那么可能还需要为静态库项目的头输入头搜索路径。
  • 如果在主项目的项目导航器中没有看到静态库项目嵌套在主项目下,则最可能的原因是静态库自己的Xcode项目仍然处于打开状态。退出Xcode并打开包含嵌套静态库项目的主项目,而不打开原始静态库项目本身,您应该看到它在主项目中显示为嵌套项目。


    xcode菜单>视图>实用程序>文件检查器

    选择静态库文件,然后在"标识和类型"中将"文件类型"设置为"mach-o对象代码"。


    工作区应该可以让这变得更容易,但我不知道他们会这么做。我的方法是创建一个工作区,添加我的主项目,添加我的库项目。然后进入主项目的构建阶段,在"链接二进制与库"部分添加库,并添加库。这应该是所有必要的,至少这是我的阅读,但不是。我要做的是进入xcode首选项,然后进入源树窗格。添加一个指向静态库头的源树,然后返回到项目的构建设置,然后返回到头搜索路径键,然后在那里输入$foo,其中"foo"是您所称的源树。

    这对我来说是可行的,尽管我不知道这是最好还是最简单的方法。


    在finder中查找.a文件,并将其拖到项目中。

    选择"复制项目到目标组的文件夹(如果需要)",然后将标题添加到项目中。

    现在,Xcode4应该为您自动链接到该框架。

    以下是库在您的项目中的外观:


    遵循苹果的文档。

    简言之:

  • 将目标链接到库。
  • -ObjC添加到目标构建设置下的"其他链接器标志"(OTHER_LDFLAGS)。
  • 此外,我还需要将库添加到主项目的方案中,因为在目标的依赖项中该库是不可见的。


    哈雷的回答对我很有用,只需要一个补充:

  • 签入静态库项目的生成设置private(或public)headers文件夹路径值并复制它。
  • 根据所使用的include指令,将复制的值添加到客户端项目生成设置头搜索路径或用户头搜索路径中