苹果Mach-O链接器警告:未找到目录

49

我已经花费了过去的五个小时来寻找这种奇怪情况的合理解释。

这是警告:

ld: warning: directory not found for option '-L/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0/Extend/SDKExport'
ld: warning: directory not found for option '-F/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0/Connection'
ld: warning: directory not found for option '-F/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0/Core'
ld: warning: directory not found for option '-F/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0/Extend'
ld: warning: directory not found for option '-F/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0'
ld: warning: directory not found for option '-F/Users/oasis_weng/Desktop/My Life/Life For Myself/Programming/Projects/ChangWeiBo/../xCodeExamples/ShareSDK/ShareSDK_v2.1.0/UI'

尽管如此,我知道所有那些所谓的"missing files"都确实存在于我的应用程序文件夹中,并且该应用程序在这些文件的情况下正常运行。

警告中这些目录的问题是实际路径不包括../xCodeExamples/ part.

我应该怎么做才能消除这些警告?


2
尝试在“项目(目标)”->“构建设置”->“库搜索路径”中删除所有路径。 - Buntylm
4个回答

99

您需要按照以下步骤操作:

  • 单击您的项目(targets)
  • 单击“Build Settings”
  • 在“Library Search Paths”下,删除路径
  • 清理您的构建并重新运行。

祝您好运!


12
后续操作:此外,如果您借用公共图书馆进行个人使用,在删除库搜索路径后,您应该将这些API移除并再次添加。这非常重要,因为系统需要这些库的库搜索路径,但仅在第一次加载库时才会生成此条目。 - donkey
我必须在调试和发布中都只删除"${inherited}",而不是整个东西。我认为这个答案是误导性的。 - Siddharth

43

对于我来说,问题出在 Framework Search Paths 下面。

找到错误路径最简单的方法是在右上角的搜索框中键入其中一部分。这将仅筛选出那个错误的路径。按照其他答案建议的删除它即可解决问题。

更多信息请参见此答案


谢谢你的回答。这也解决了我的问题,特别是清除框架搜索路径。+1 - ICL1901
3
这应该是被接受的答案,因为问题路径中有“-F”,它代表框架,而使用“-L”表示库。 - Alexander Tsepkov

4
今天我遇到了同样的问题,不过找到了不同的解决方案(或许对某些人有帮助)。
如果你的源目录名称 $(SRCROOT) 中包含空格,请在“Library Search Paths”中使用 "$(SRCROOT)" 而不是 $(SRCROOT)
假设你的目录名为 "A B C"。如果你使用 $(SRCROOT),可能会得到类似于:
directory not found for option '-LA'
directory not found for option '-LB'
directory not found for option '-LC'

1
我的警告也与 $(SRCROOT) 的清单有关。由于某种原因,我的被设置为 "$(SRCROOT)/a_project_subfolder"...不确定为什么转义字符会被添加,因为它们似乎是问题的原因(另外我删除了子文件夹)。所以是的,"$(SRCROOT)" 是我最终使用的。谢谢! - dooleyo

1
还要检查构建设置中的“框架搜索路径”,以查找未使用的文件夹(当我今天从项目中删除Carthage时,就发生了这种警告)。

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