目录未findApple Mach-O链接程序警告,但库searchpath和框架searchpath为空

我收到这些消息:

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"' 

但是当我去Build Settings(如'ld:warning:directory not found for option'所示 )时,库searchpath和框架searchpath是空的,所以没有什么可删除的。

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

这里是一个描述如何避免以前发布的基于Apple Dev Forum的问题。 它适合我,所以我转发描述那些不想去论坛注册的人。

这个错误是由于XCode 5在处理用户向项目中添加新文件或文件夹时发生错误。

Xcode正在修改“库searchpath”的构build设置,并使其糟糕透顶。 而不是添加$(SRCROOT)/它将完全根path添加到所有新项目,并将随机数量的/ /添加到string的其他元素。 在某些情况下,它也似乎是重复的源代码path,可能是因为它破坏了现有的path,并认为它们需要重新添加。

解决scheme:

  1. 将“库searchpath”string复制到文本编辑器中。
  2. 删除所有不应该在那里的完全根path,并用通常的$(SRCROOT)/ MyFiles / typepathreplace它们。
  3. 删除所有多余的斜杠,并确保每个path都有一个“开头和结尾的字符,以防止文件名中的空格。
  4. 将编辑的string粘贴回生成设置。
  5. 清理,然后build立。 应该恢复正常。

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

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

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

我closures了MyProject,删除了包含AdMob-v6.4.1的行,重新打开了项目,执行了“validation项目设置”,清理和构build,现在一切正常。

是的,有时Xcode是jenky。

你有没有尝试清理你的构build( 产品>清洁生成文件夹 / Shift-Cmd-K ),然后再试一次?

你可以做的另一件事是search[project_name] .xcodeproj / project.pbxproj中的两个条目,删除它们,closuresXCode,重新打开,清理生成文件夹,然后再试一次。

祝你好运!

总结什么@ user2963906是build议,我表明我的解决scheme,这个问题,我觉得很容易。

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

  1. 打开你的项目目标
  2. 查找searchpath主题和库searchpath
  3. select并删除这里的所有path
  4. 然后添加这样的path: $(SRCROOT)/"Your App Name"
  5. 在同一个窗口中将下拉列表从右移到non-recursive recursive
  6. Shift-⌘-K并运行你的项目

我在iOS开发者论坛上发现了一个解决scheme。 它发生在Xcode 5中。请参阅Massive Linker错误警告(目录未find选项) 。 对我来说,这是由Xcode 5引起的“库searchpath”构build设置造成的。

简单解决scheme

这对我有用

当你想添加新的文件或文件夹到项目通过xcode 5及以上的错误display.Just按照下面的简单步骤(请不要忘记获得您的项目的备份)。

  1. 在Old XCode中打开你的项目(我推荐XCode 4.6.3)
  2. 添加您的文件或文件夹。 (它不会混乱你的图书馆searchpath,因为它在XCode 5混乱)
  3. closures旧的Xcode并用XCode 5打开你的项目并开始编码。

我面临同样的问题,但无法修复它的步骤,因为没有库文件夹显示在项目属性窗口中。

所以我用另一种方法解决了这个问题(你需要能够使用terminal和VIM编辑器,以备以后使用)

  1. 打开一个terminal窗口
  2. 转到项目文件夹。
  3. XCode项目是一个文件夹。 使用cd项目名称进入该文件夹。
  4. 使用vim打开并编辑project.pbxproj文件。
  5. 通过使用/search并在该行上使用dd命令来删除对违规行的引用。
  6. 保存使用:wq命令

在XCode中打开项目并构build。 奇迹般有效。

我不得不摆脱任何空间与\

举个例子:

/ Users / Me / Folder \ with \ spaces \(and \ brackets \)

在图书馆searchpath

这对我工作:

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

在项目文件夹 – >目标中,在“构build设置”下search“库searchpath”,并简单地删除debugging和释放区域中的前一path。

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

$(PROJECT_DIR)/库

注意:添加上面的行后,从popup窗口中单击。 它会自动显示完整的path。然后检查这个path与您的查找器,如果任何更正后添加$(PROJECT_DIR)/

清理,build立和运行…简单的清除错误。 🙂

-Anup