在静态库中编译静态库 - 问题

时间:2011-03-30 21:42:10

标签: iphone cocoa-touch xcode static-libraries

我创建了一个静态库,其内部包含“Link Binary With Libraries”文件夹中的另一个静态库(X)。但是当我将我的库导出到示例项目并尝试编译时,无法找到X库路径。我正在加“。”在构建我的静态库时,在“库搜索路径”构建参数中。

我在这里失踪的是什么?

2 个答案:

答案 0 :(得分:2)

如果我正确地理解了你的问题,那么它就不是一个链接器搜索路径问题,而是一个概念问题。

我看到两个解决问题的方法:

常见且直接的解决方案;

  • 将两个静态库项目添加到应用程序的项目中
  • 展开所包含的项目
  • 展开您的应用项目的目标
  • 展开“Link Binary With Libraries”-Entry
  • 将您的图书馆项目(实际图书馆)的产品文件拖入“使用图书馆链接二进制文件”-Entry
  • USER_HEADER_SEARCH_PATHS构建设置
  • 中包含两个库项目的标题路径

下一种方法相当不同寻常,在大多数情况下,不值得花一大笔钱。在进入细节之前,这里有一些解释。

静态库的概念基本上是一堆填充到单个文件(存档)中的对象文件。将静态库与另一个静态库链接起来是相当罕见的 - 好吧,拼写正确,不可能。

......但是再说一次,在编码方面没有什么是不可能的;)......

包装库解决方案;

  • 使用ar从所有要合并的库中提取所有目标文件
  • 使用ar将所有这些目标文件合并为一个新的大型库

答案 1 :(得分:2)

在设置标题搜索路径时,请尝试设置其他链接标记。

转到“链接器”部分下的“其他链接器标志”,并将“-ObjC”和“-all_load”添加到标志列表中

希望对你有用,

相关问题