目录未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:
- 将“库searchpath”string复制到文本编辑器中。
- 删除所有不应该在那里的完全根path,并用通常的$(SRCROOT)/ MyFiles / typepathreplace它们。
- 删除所有多余的斜杠,并确保每个path都有一个“开头和结尾的字符,以防止文件名中的空格。
- 将编辑的string粘贴回生成设置。
- 清理,然后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,这个问题,我觉得很容易。
我假设你的项目文件夹中有你的所有文件和库。
- 打开你的项目目标
- 查找searchpath主题和库searchpath
- select并删除这里的所有path
- 然后添加这样的path:
$(SRCROOT)/"Your App Name"
- 在同一个窗口中将下拉列表从右移到
non-recursive
recursive
- Shift-⌘-K并运行你的项目
我在iOS开发者论坛上发现了一个解决scheme。 它发生在Xcode 5中。请参阅Massive Linker错误警告(目录未find选项) 。 对我来说,这是由Xcode 5引起的“库searchpath”构build设置造成的。
简单解决scheme
这对我有用
当你想添加新的文件或文件夹到项目通过xcode 5及以上的错误display.Just按照下面的简单步骤(请不要忘记获得您的项目的备份)。
- 在Old XCode中打开你的项目(我推荐XCode 4.6.3)
- 添加您的文件或文件夹。 (它不会混乱你的图书馆searchpath,因为它在XCode 5混乱)
- closures旧的Xcode并用XCode 5打开你的项目并开始编码。
我面临同样的问题,但无法修复它的步骤,因为没有库文件夹显示在项目属性窗口中。
所以我用另一种方法解决了这个问题(你需要能够使用terminal和VIM编辑器,以备以后使用)
- 打开一个terminal窗口
- 转到项目文件夹。
- XCode项目是一个文件夹。 使用cd项目名称进入该文件夹。
- 使用vim打开并编辑project.pbxproj文件。
- 通过使用/search并在该行上使用dd命令来删除对违规行的引用。
- 保存使用: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