XCode 4.2和使用静态库引起问题

13

像很多其他SO用户一样,我在XCode工作区使用库时遇到了问题。我的想法是我有我的主要项目(MyApp)和两个库(lib1lib2),它们在代码最终确定后添加到了工作区。

Lib1依赖于Lib2,因为需要实现一些协议才能利用Lib2MyApp依赖于两者。我尝试了按照Apple指南的方式进行操作,这意味着我想要的很简单。此后,我遵循了搜索结果中的几乎所有帖子(2天的谷歌搜索),以及其他许多声称具有解决方案的博客和帖子,其中许多是针对XCode 3特定的。

然而,我的项目无法构建。我正在使用OS 10.6上的Xcode 4.2(升级到Lion不是一个选项)。是否有一个简单的教程可以遵循,以创建一个库项目,并在应用程序中使用该库。

我在编写本问题时遇到了此答案(问题与我遇到的错误相同),我会查看它,但已经到了复制源文件的地步来使演示程序工作。

更新:

这里是出现的问题清单。我会在出现更多问题时添加:

  • **directory not found for option '-L/Users/myhomedir/iphoneprojects/MyApp/../BLProfile/build/Release-iphoneos'**


你没有解释你遇到了什么错误或者哪些部分无法正常工作。 - sch
@sch 我会尝试发布一些错误,但是在尝试解决问题时,新的错误会出现。 但是问题仍然存在,是否有一个简单的指南可以告诉我如何创建库项目并实际使用它。 - Mike D
2个回答

24

以下是创建静态库和使用该库的项目的步骤:

步骤1:创建工作区:文件 > 新建 > 工作区。这不是必需的,但有助于组织项目。

步骤2:创建静态库项目:文件 > 新建 > 项目 > 框架和库 > Cocoa Touch静态库。我们称其为MyLib

步骤3:创建应用程序项目:文件 > 新建 > 项目 > 应用程序 > 空应用程序,或任何其他应用程序模板。我们称此项目为MyApp。如果将项目放置在不同的文件夹中,则可能需要使用不同的路径。

现在您在工作区中有以下项目。

Project structure

步骤4:配置应用程序以查找库的.h文件。为此,请添加父文件夹"../"并选中递归复选框。

Header Search Path

步骤5:链接应用程序到库。

enter image description here


我在设置头文件搜索路径时,没有弹出递归选项的弹窗。 - Mike D
1
@MikeD - 双击“用户头文件搜索路径”行,或直接按回车键并输入“../**”。 - sch
1
现在我有一个更具体的错误。由于我有一个依赖于另一个库的库,所以我会得到一个错误,其中lib1在lib2中找不到头文件。 - Mike D
请重复步骤4和5来处理lib1,以便您可以在其中使用lib2。 - sch
这会将库添加到产品目录中,对吗?如果我没记错的话,那是为iphoneos构建的,所以这不能在模拟器上运行? - André Fratelli

0
  1. 打开您想要添加静态库的主项目。
  2. 另存为工作区。
  3. 添加库的项目包。在添加项目包时无需勾选复制。
  4. 将Xcode首选项位置更新为自定义-相对于工作区。产品为“Build/Products”,中间文件为“Build/Intermediates”
  5. 在您的主项目->目标->构建设置中,将头文件和库搜索路径添加为$(BUILD_PRODUCTS_DIR)
  6. 构建库项目。这样就会在指定的构建路径中创建一个新的库。
  7. 从构建阶段中删除现有库并将其移到垃圾桶中。打开构建阶段->链接二进制文件与库,并从构建目录中添加新创建的库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,