将静态库链接到XCode 4中的iOS项目
我有一个编译为静态库的项目( AQGridView
),但我似乎无法将其添加到我的项目。
将项目拖到我的项目中会创build一个工作空间,如果我尝试从DerivedData
目录链接libAQGridView.a
文件,则它不会将其识别为库。 我不确定我做错了什么。
这是AQGridView
项目。 有没有人知道如何在XCode 4项目中使用它?
我这样做如下:
- 拖动静态库项目。 如果您在Xcode中打开了静态库项目,请立即closures它。
- select项目导航器中的主项目(我要添加静态库的项目)和编辑器中的左侧列标题TARGETS下,select我的主项目的目标并导航到“构build阶段”选项卡。
- 单击“+”作为目标依赖关系,并从添加的静态库项目中添加库图标目标依赖项。
- 单击链接二进制与库的“+”,并添加文件夹“工作区”下的库图标。
- 如果静态库项目本身的头文件是如何链接的,则可能还需要为静态库项目的头文件input头文件searchpath。
如果在主项目的项目导航器中没有看到嵌套在主项目下的静态库项目,则最可能的原因是静态库自己的Xcode项目仍处于打开状态。 退出Xcode,打开embedded了静态库项目的主项目,而不打开原来的静态库项目本身,你应该看到它在主项目中显示为嵌套项目。
Xcode菜单>查看>实用程序>文件检查器
select静态库文件,然后在“标识和types”中将“文件types”设置为“Mach-O目标代码”。
工作空间应该使这个更容易,但我不知道他们这样做。 我这样做的方式是创build一个工作区,添加我的主项目,添加我的库项目。 然后进入主项目的构build阶段并在“链接二进制库”部分中添加库并添加库。 这应该是所有必要的,至less这是我的阅读,但事实并非如此。 我所做的是进入Xcode首选项,然后到“源树”窗格。 添加一个指向你的静态库头的源代码树,然后返回到你的项目的构build设置,然后返回到Header Search Paths键,并在那里input$ {foo},其中“foo”是你所说的源代码树。
这对我很有用,但我不知道这是否是最好的或最简单的方法。
在查找器中find.a文件,并将其拖到您的项目中。
select“将项目复制到目标组的文件夹(如果需要)”,并将您的标题添加到您的项目。
现在,XCode 4应该自动链接到你的框架。
这是图书馆应该在你的项目中的样子:
按照苹果的文档 。
简单来说:
- 把你的目标与图书馆联系起来。
- 在目标的构build设置下将
OTHER_LDFLAGS
-ObjC
到“其他链接器标记”(OTHER_LDFLAGS
)。
另外,我需要将库添加到我的主项目的scheme中,因为库在目标的依赖项中不可见。
哈雷的答案对我来说有一个补充:
- 检查静态库的生成设置项目的私人(或公共)头文件夹path值并复制它。
- 将复制的值添加到客户端项目“ 生成设置 标头searchpath”或“ 用户头searchpath”,具体取决于您正在使用的include指令