目录未找到 Apple Mach-O 链接器警告,但库搜索路径和框架搜索路径为空



我收到以下消息:

ld: warning: directory not found for option '-F"/Users/joel/Development/GHaikuTabbed"'
ld: warning: directory not found for option '-F"/Users/joel/Development/GHaikuTabbed/../../../Downloads"'

但是当我转到构建设置时(如"ld:警告:找不到选项的目录"中建议的那样(,库搜索路径和框架搜索路径为空,因此没有要删除的内容。

关于我可以做的其他事情来摆脱这个警告的想法?

以下是基于之前发布的Apple开发论坛的描述,如何避免问题。它对我有用,所以我为那些不想去论坛注册的人重新发布描述。

该错误是由于 XCode 5 在处理用户向项目添加新文件或文件夹时出错。

Xcode 正在修改"库搜索路径"构建设置,并把它弄得一团糟。它不是添加 $(SRCROOT(/,而是向所有新项添加完全根的路径,并将随机数量的///添加到字符串的其他元素中。在某些情况下,它似乎也在复制源路径,可能是因为它破坏了现有的路径,并认为它们需要再次添加。

解决方案:

  1. 将"库搜索路径"字符串复制到文本编辑器中。
  2. 删除任何不应该存在的完全根路径,并将它们替换为通常的 $(SRCROOT(/MyFiles/类型路径。
  3. 删除所有多余的斜杠,并确保每个路径的开头和结尾都有一个 " 字符,以防止文件名中有空格。
  4. 将编辑后的字符串粘贴回"生成设置"。
  5. 清理,然后生成。应该恢复正常。

如果将新文件添加到项目中,此错误很可能会再次出现,因此请注意。

我的project.pbxproj看起来像这样:

LIBRARY_SEARCH_PATHS = (
        "$(inherited)",
        "\"$(SRCROOT)/AdMob-v6.4.1\"",
        "/MyProject/AdMob-v6.5.1",
); 

我关闭了MyProject,删除了包含AdMob-v6.4.1的行,重新打开了项目,执行了"验证项目设置",清理并构建,现在一切都很好。

是的,Xcode有时很笨拙。

您是否尝试清理您的构建(产品>清理构建文件夹/Shift-Cmd-K(并重试?

您可以做的另一件事是在 [project_name].xcodeproj/project.pbxproj 中搜索这两个条目,删除它们,关闭 XCode,重新打开,清理构建文件夹,然后重试。

祝你好运!

总结@user2963906的建议,我展示了我对这个问题的解决方案,我认为这很容易。

我假设您的项目文件夹中有所有文件和库。

  1. 打开项目目标
  2. 查找搜索路径
  3. 主题和库搜索路径
  4. 在此处选择和删除所有路径
  5. 然后像这样添加路径:$(SRCROOT)/"Your App Name"
  6. 在同一窗口中,将下拉列表从右侧从non-recursive更改为recursive
  7. Shift-⌘-K 并运行您的项目

我在iOS开发人员论坛上找到了解决方案。它发生在我身上的Xcode 5。请参阅大量链接器错误警告(找不到选项的目录(。对我来说,这是由 Xcode 5 破坏"库搜索路径"构建设置引起的。

简单的解决方案:

这是我的工作

当您想通过 Xcode 5 及更高版本向项目添加新文件或文件夹时,错误显示。只需按照以下简单步骤操作即可。(请不要忘记获取项目的备份(。

  1. 在旧的XCode中打开你的项目(我推荐XCode 4.6.3(
  2. 添加您的文件或文件夹。(它不会像在XCode 5中那样弄乱你的库搜索路径(
  3. 关闭旧的 xcode,使用 XCode 5 打开您的项目并开始编码。

我遇到了同样的问题,但由于项目属性窗口中没有显示库文件夹,因此无法按照步骤修复它。

所以我用另一种方式解决了它(你需要能够使用终端和 VIM 编辑器。还要备份项目以防万一(

  1. 打开终端窗口
  2. 转到项目文件夹。
  3. XCode 项目是一个文件夹。使用 CD 项目名称进入该文件夹。
  4. 使用 vim 打开和编辑 project.pbxproj 文件。
  5. 通过使用/搜索并使用该行上的 dd 命令将其删除,从而删除对违规行的引用。
  6. 使用 :wq 命令保存

在 XCode 中打开项目并生成。就像一个魅力。

我必须用\

所以例如:

/

用户/我/文件夹\ 带\空格\(和\括号\(

在库搜索路径中

这对

我有用:

创建这个真实的目录(没有内容(,将它们添加到项目中,通过删除引用删除,清理,删除真实

在项目文件夹 -> 目标下,在"构建设置"下搜索"库搜索路径",只需删除调试和发布区域中的上一个路径。

现在使用 + 符号在行下方添加行

$(PROJECT_DIR(/库

注意:添加上述行后,从弹出窗口中单击。 它会自动显示完整路径。然后与您的 Finder 一起检查此路径,如果在 $(PROJECT_DIR(/之后添加了任何更正

清洁,构建和运行...简单它清除了该错误。:)

-阿努普

最新更新