将静态库链接到XCode 4中的iOS项目

时间:2011-05-25 12:35:23

标签: iphone objective-c ios xcode4

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

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

这是AQGridView项目。有没有人具体知道如何在XCode 4项目中使用它?

6 个答案:

答案 0 :(得分:93)

我这样做如下:

  1. 在静态库项目中拖动。如果您在Xcode中打开了静态库项目,请立即关闭它。
  2. 在项目导航器中选择主项目(我正在添加静态库的项目),在编辑器中,在左栏中的标题TARGETS下,选择我的主项目目标并导航到Build Phases标签。
  3. 单击目标依赖项的“+”,并从添加的静态库项目中添加库图标目标依赖项。
  4. 点击链接二进制文件的“+”和库,并添加“工作区”文件夹下的库图标。
  5. 如果标题在静态库项目本身中的链接方式,可能还需要输入静态库项目标题的标题搜索路径。
  6. 如果您没有看到静态库项目嵌套在主项目的项目导航器中的主项目下,最可能的原因是静态库自己的Xcode项目仍处于打开状态。退出Xcode并打开其中包含嵌套静态库项目的主项目,而无需打开原始静态库项目本身,您应该看到它在主项目中显示为嵌套项目。

答案 1 :(得分:14)

Xcode菜单>查看>公用事业>文件检查器

选择静态库文件,然后在“标识和类型”中将“文件类型”设置为“Mach-O目标代码”。

答案 2 :(得分:5)

在finder中找到你的.a文件,然后将其拖入你的项目中。

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

现在,XCode 4应该自动链接到该框架。

这是图书馆在项目中应该是什么样子:

答案 3 :(得分:5)

工作区应该让这更容易,但我不知道他们这样做。我这样做的方法是创建一个工作区,添加我的主项目,添加我的库项目。然后进入主项目的构建阶段,并在“使用库链接二进制文件”部分中添加库并添加库。那个应该是必要的,至少那是我的阅读,但事实并非如此。我所做的是进入Xcode首选项,然后进入Source Trees窗格。添加指向静态库标题的源树,然后返回到项目的构建设置,然后返回到Header Search Paths键,并在那里输入$ {foo},其中“foo”是您称之为源树的任何内容

这对我有用,但我不知道这是否是最好或最简单的方法。

答案 4 :(得分:3)

关注Apple的documentation

简而言之:

  1. 将目标链接到图书馆。
  2. 在目标的构建设置下将-ObjC添加到“其他链接标记”(OTHER_LDFLAGS)。
  3. 此外,我需要将库添加到我的主项目的方案中,因为该库在目标的依赖项中不可见。

答案 5 :(得分:0)

Halle的回答对我来说只有一个补充:

  1. 检入静态库项目的构建设置 私有(或公共)标头文件夹路径值并复制它。
  2. 将复制的值添加到客户端项目构建设置 标题搜索路径用户标题搜索路径,具体取决于 include 您正在使用的指令