静态库引发链接器错误:“没有这样的文件或目录”

时间:2013-07-01 19:45:38

标签: ios xcode

背景(可能相关或不相关):我正在尝试使用名为j2objc的转换编译器,它允许您转换Java代码以在iOS应用程序中使用。它的基础库包含一系列Java Runtime的Objective-c翻译。为了添加该代码库,according to its wiki我应该将提供的.xcodeproj添加为静态库。那就是我遇到麻烦的地方。

我做了什么:

  • 将提供的.xcodeproj添加为子项目
  • 在我的主要目标的Build Phases下,在Target Dependencies下,我已在子项目中添加了相应的目标
  • Link Binary with Libraries下,我添加了一个名为libjre_emul.a的文件,该文件是子项目的假定输出。
  • 这完全符合项目的指示并按计划进行

失败的原因:当我尝试构建项目时,出现以下错误:

  

clang:错误:没有这样的文件或目录:       '/Users/Thomas/Library/Developer/Xcode/DerivedData/tuxblocks-asszlcvjgdqugifxhbkkwcrstotk/Build/Products/Debug-iphonesimulator/libjre_emul.a'

实际上该文件夹中没有libjre_emul.a,所以Xcode是对的。当我自己构建子项目时,我没有构建错误,因此我假设它正在做它应该做的事情,但我也检查了它的输出文件夹,并且在那里也看不到libjre_emul.a。那么为什么输出库不存在?

可能相关的一点:我试图使用的库似乎是在Xcode 3中创建的,而我正在使用Xcode 4.我听说可能存在一些问题。

我承认我是Xcode的新手,所以我可能完全误解了一些东西。无论如何,我当然感谢你的帮助!

编辑:我找到了libjre_emul.a文件。它位于子项目下名为build_result的文件夹中。将它复制到Xcode预期的位置似乎让它运行...

1 个答案:

答案 0 :(得分:0)

在xcode设置中,搜索构建设置"标题搜索路径"然后添加静态框架所在的目录。确保告诉它是递归的,以帮助搜索它的子文件夹。