【问题标题】:XCode 4.2 and Using a Static Library Causing ProblemsXCode 4.2 和使用静态库导致问题
【发布时间】:2012-03-15 18:36:53
【问题描述】:

像这里的许多其他人一样,我在使用 XCode 工作区中的库时遇到问题。这个想法是我有我的主要项目(MyApp)和两个库(lib1lib2),它们在代码完成后添加到工作区。

作为背景,lib1 依赖于 lib2,因为需要实现一些协议才能使用 lib2MyApp 依赖于两者。我尝试遵循 Apple 指南,这意味着我想要的很简单。在那之后,我几乎关注了我搜索中出现的关于 SO 的所有帖子(2 天的谷歌搜索),以及许多其他声称有解决方案的博客和帖子,其中许多是特定于 XCode 3 的。

然而,我的项目没有建立。我在 OS 10.6 上使用 Xcode 4.2(升级到 Lion 不是一个选项)。是否有关于如何创建库项目并在应用程序中使用该库的简单教程。

我在写这个问题时遇到了this answer(这个问题和我有同样的错误),我会调查一下,但我已经到了复制源文件只是为了让演示工作的地步。

更新:

这里是出现的问题列表。当它们出现时,我会添加更多:

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

【问题讨论】:

  • 你没有解释你得到了什么错误或什么不起作用。
  • @sch 我会尝试发布一些错误,但在尝试解决方案时,会出现新错误。但是问题仍然没有错误,是否有一套简单的说明来说明如何创建一个库项目并实际使用它。

标签: xcode


【解决方案1】:

这是创建静态库和使用它的项目的方法。

第 1 步: 创建工作区:文件 > 新建 > 工作区。这不是强制性的,但它有助于组织项目。

第 2 步: 创建一个静态库项目:文件 > 新建 > 项目 > 框架和库 > Cocoa Touch 静态库。让我们称之为 MyLib

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

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

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

第 5 步:将应用链接到库。

【讨论】:

  • 我设置标题搜索路径的步骤,我没有得到具有递归选项的弹出窗口。
  • @MikeD - 双击 User Header Search Paths 行,或者直接按回车键并写入 ../**
  • 现在我有一个更具体的错误。因为我有一个依赖于另一个库的库,所以我收到一个错误,即 lib1 在 lib2 中找不到头文件。
  • 对 lib1 执行相同的步骤 4 和 5,以便您可以在其中使用 lib2。
  • 这会从产品目录中添加库,对吧?如果我没记错的话,那是为 iphoneos 构建的,所以它不会在模拟器上运行?
【解决方案2】:
  1. 打开要添加静态库的主项目。
  2. 另存为工作区。
  3. 添加库的项目包。添加项目包时无需检查副本。
  4. 将 Xcode 首选项位置更新为自定义相对于工作区。产品作为“构建/产品”和中间体作为构建/中间体
  5. 在您的主项目 -> 目标 -> 构建设置中,将标题和库搜索路径添加为 $(BUILD_PRODUCTS_DIR)
  6. 构建库项目。因此,将在上述构建路径中创建一个新库。
  7. 从构建阶段删除现有库并移至回收站。打开 Build Phases -> Link Binary With Libraries 并从 build 目录添加新创建的库。

【讨论】:

    猜你喜欢
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    相关资源
    最近更新 更多