iPhone静态库创建

Posted

技术标签:

【中文标题】iPhone静态库创建【英文标题】:iPhone static library creation 【发布时间】:2011-10-16 17:40:19 【问题描述】:

我创建了一个静态库 LibA.a,其中包含一些代码和另一个静态库 LibB.a。当我在一个新项目中使用这个静态库 LibA.a 时,我会遇到很多这样的错误:

File1.h 没有这样的文件或目录。

LibB.a 中存在此文件 File1.h 和其他显示错误的文件。

编辑 1:我使用的是 XCode 4.0.1

编辑 2: 现在,在创建我的静态库时,我将头文件公开,用户可以在他们的项目中使用其方法。我的静态库引用了另一个名为 XWidget.a 的静态库。我已将它添加到我的静态库的“Link Binary with Libraries”以及直接依赖项中。然后创建了我的静态库。现在我正在一个演示项目中测试我的库。在演示项目的头文件搜索路径中,我添加了我的静态库的公共头文件的路径。当我运行它时,找不到内部静态库 XWidget.a 中存在的头文件。给出像 FileA.h 这样的错误:没有这样的文件或目录。我还应该以某种方式提供内部静态库(XWidget.a)的路径吗?如果是,那怎么办?或者我还缺少什么?

【问题讨论】:

【参考方案1】:

您需要将头文件包含在要与库交互的项目中。

【讨论】:

实际上那些存在于静态库中的头文件(在“复制头文件”的“项目”域中)在主项目中找不到并给出上述错误。我不想将它们保留在公共领域,以免被看到。 某些头文件必须是公开的,以便开发人员可以使用该库 @phix23 : 请看一下编辑 2。我已经尝试过你所说的,但还会出现更多错误。【参考方案2】:

单击侧边栏 Xcode 文件管理选项卡中的大项目按钮,选择您的目标,单击 Build Phases,然后下拉标题为“Compile Sources”的下拉菜单。然后确保所有必要的 .m,不是 .h,文件都在那里。

我自己也遇到过几次这个问题,希望对你有帮助!

【讨论】:

以上是关于iPhone静态库创建的主要内容,如果未能解决你的问题,请参考以下文章

为 iPhone 设备构建时 xcode 静态库链接错误

静态 (iPhone) 库、分发和依赖项

Xcode for iPhone 中静态库和动态库的区别

在 iPhone SDK 3.0 中链接静态库

iOS 静态库和动态库对ipa包大小的影响

ios iPhone / iPad - 带有 GData 静态库 libGDataTouchStaticLib.a 的项目在构建时失败(重复符号)