【问题标题】:Apple Mach-O Linker Warning Directory not found未找到 Apple Mach-O 链接器警告目录
【发布时间】:2013-05-14 17:50:16
【问题描述】:

在过去的五个小时里,我一直在为这种奇怪的情况寻找合理的解释。

这里是警告:

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.

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

【问题讨论】:

  • 尝试Projects(targets) -> Build Settings -> Library Search Paths 并删除所有路径。

标签: iphone ios objective-c xcode


【解决方案1】:

您必须按照以下步骤操作:

  • 点击您的项目(目标)
  • 点击构建设置
  • 在“库搜索路径”下,删除路径
  • 清理您的构建并再次运行。

祝你好运!!

【讨论】:

  • 跟进:另外,如果您是借用公共图书馆自用,删除图书馆搜索路径后,您应该删除这些API并重新添加它们。这非常重要,因为系统需要这些库的库搜索路径,但只有在第一次加载这些库时才会生成此条目。
  • 我只能在调试和发布时删除“${inherited}”。不是全部。我认为这个答案具有误导性。
【解决方案2】:

对我来说,糟糕的路径是在框架搜索路径下。

找到错误路径的最简单方法是在右上角的搜索框中输入其中的一部分。这会将列表过滤到只有一个错误的路径。正如其他答案所暗示的那样,删除它可以解决问题。

请参阅this answer 了解更多信息。

【讨论】:

  • 感谢您的回答。这也为我解决了专门清除框架搜索路径的问题。 +1
  • 这应该是公认的答案,因为路径中有-F,代表框架,库使用-L
【解决方案3】:

今天遇到了同样的问题,但有不同的解决方案(可能会对某人有所帮助)。

如果您的源目录名称 $(SRCROOT) 包含空格,请使用 库搜索路径中的 "$(SRCROOT)" 而不是 $(SRCROOT)

假设您的目录名称是“A B C”。如果你使用$(SRCROOT) 你可能会得到类似的东西:

directory not found for option '-LA'
directory not found for option '-LB'
directory not found for option '-LC'

【讨论】:

  • 我的警告也与$(SRCROOT) 列表有关。出于某种原因,我的设置为\"$(SRCROOT)/a_project_subfolder\"...不知道为什么要添加转义字符,因为它们似乎是问题(另外我删除了子文件夹)。所以是的,"$(SRCROOT)" 是我最终使用的。谢谢!
【解决方案4】:

还要检查 Build Settings->Framework Search Path 以查找未使用的文件夹(我今天从项目中删除 Carthage 时发生了这种警告)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多