“ ld:警告:找不到选项的目录”


524

在构建Xcode 4应用程序时,出现以下警告:

ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../../../Downloads/Google Analytics SDK/Library'
ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../Google Analytics SDK/Library'

但是我的应用程序中没有Google Analytics(分析),我将其全部删除了,如何删除该错误?存档应用程序会给我错误:

clang: error: no such file or directory: 'armv6'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

我已经尝试了很多事情,但是在尝试制作.IPA文件时仍然遇到此错误


10
请注意,有一个非常类似的警告,但带有-F而不是-Ldirectory not found for option '-F/...。有关差异,请参见下面的@macayer答案。
2014年

1
注意:确保带空格的目录被引用。例如$(PROJECT_DIR)/my folder应该是`“ $(PROJECT_DIR)/ my folder”
Jacksonkr 2014年

当我的班级没有指定适当的目标成员资格时,我遇到了这个问题。
汤姆·霍华德

1
@杰克逊为我修复了它。我收到了-F警告,并按照“构建设置”中“框架搜索路径”中的说明进行引用来进行修正。谢谢
马克

定期备份是最佳做法。
Gajendra K Chauhan

Answers:


877

您需要这样做:

  1. 单击您的项目(目标)
  2. 点击构建设置
    • 如果您的错误包括该-L标志,则删除“ 库搜索路径”中的值
    • 如果您的错误包括该-F标志,则删除“ 框架搜索路径”中的值

关于第二个错误,对不起,我无法帮助您解决那个错误。希望其他人可以帮助您。


5
这破坏了我的项目,但是我只是注释掉了我的Google Analytics(分析)#imports,并删除了SDK,退出了xcode,重新添加了我的#imports并取消了注释,然后再次起作用了:)
情绪化

1
您是否省略了任何步骤?我这样做了,现在Xcode找不到几秒钟前正在工作的其他文件。帮帮我!
用户

9
如果确实需要该库路径,请小心删除。验证错误中指定的路径是否存在。库在磁盘上的位置可能已移动。
AWrightIV

3
删除“ 库搜索路径”后,我得到了错误:ld: library not found for -lMoboSDK clang: error: linker command failed with exit code 1 (use -v to see invocation)(lMoboSDK是我的静态库)

2
我必须删除“ AppTests”目标上“框架搜索路径”下的路径,以清除错误。
AT3D

753

人们似乎会混淆两个错误。

如果它是“找不到选项' -L / ...的目录”错误,则意味着它是库错误,您应该尝试:

  • 单击您的项目(目标)
  • 点击构建设置
  • 在“ 库搜索路径”下,删除路径

如果它是“找不到选项' -F / ...的目录”,则意味着它是框架错误,您应该尝试:

  • 单击您的项目(目标)
  • 点击构建设置
  • 在“ 框架搜索路径”下,删除路径

当您移动引用的文件时,可能会发生这种情况。


3
为什么所有答案都不能像您一样简洁明了和有用?谢谢。我有一个附带的问题:从哪里可以了解到隐秘的-L / -F错误?我是整个链接/编译/构建游戏的新手,并且Xcode的内置文档也不是完全可以写的。我假设其中大部分内容都可以通过命令行访问。我在这个假设中正确吗?我什至很难知道从所有这些东西开始。我已经习惯了Web开发,所以您可以假设,在该领域中查找信息要容易一些。
本·

在删除搜索路径时,它再次显示未找到FacebookSDK。这是-F错误。我正在使用Xcode 6.1
Rinku 2015年

为我工作。我必须删除项目和测试模块的目标中的框架搜索路径(项目从iOS8.3升级到iOS9时)。
ObjectiveTC

1
快来苹果公司,“它确实可以工作”发生了什么……这也应该适用于开发人员。至少为我们提供了有关如何解决这类问题的建议,而不是向这些隐秘消息提供建议。金达让我想起了微软。
约翰·康塔里诺

2
非常感谢“ -L代表库搜索路径”和“ -F代表框架搜索路径”指南,它对我来说非常完美。
swiftBoy

79

我的问题是我打开了原始的.xcodeproj而不是CocoaPods生成的.xcworkspace。


在敲打键盘三个小时后,这真是救了我
Gregory Saldanha

60

我必须在以下位置删除引用:

  • 目标
  • 构建设置
  • 框架搜索路径

在此处输入图片说明

然后构建被破坏(预期)。因此,我删除了框架(FB SDK),重新添加了框架,然后瞧。没有更多的错误或警告。:)


19

我使用可可豆荚,所以对我来说,我退出Xcode并运行

pod install

再次并重新打开该项目。这样就解决了一切!


1
不知道当您的建议实际上可以解决类似问题时,为什么您会因此而感到沮丧?具体来说,如果在向项目中添加新的构建配置后遇到类似的错误消息,则这是一种解决方案。由于添加新的构建配置会自动意味着复制现有配置,因此需要运行pod install以调整“基于配置文件”列的值。
Cellane

1
此外,可可豆荚会产生一个工作区。确保打开该文件,而不是打开项目文件。pod install +打开工作区文件解决了我的问题。
Michael Krebs

在ionic中,当我在platform / ios文件夹中运行pod安装时,这对我有用
Bas van Dijk

18

对我来说,问题是缺少转义符“ \”。

我的搜索路径在“库搜索路径”中分成几行。方便地,他们在我的行进途中被打破。添加转义符“ \”为我修复了它。

$(PROJECT_DIR)/My\ Project\ Name/My\ Directory

这是完美的答案!经过测试的2014
Van Du Tran

1
令人遗憾的是,这种情况在2015年2月的Xcode 6中仍然没有解决。路径中的空格不需要手动转义。
StilesCrisis 2015年

上面接受和投票较高的答案对我不起作用,但确实如此。我的提示是这个问题是Xcode抛出2 -L错误,每个错误都是完整路径的一部分,并且在空间上中断了。同意在2015年我们不必担心逃逸空间的问题,这应该在幕后为我们处理!
John Contarino

是的,这是Xcode中的一个长期存在的问题,当系统自动添加您的搜索路径时(例如,由于将库拖动到“嵌入式二进制文件”中,由于某种原因,它不会自动转义空格并随后进行解释)它们作为单独的文件路径。

13

我找到了必须删除的参考:

  • 目标
  • 构建设置
  • 标头搜索路径

33
使用Google查找“ ld:警告:找不到选项目录”的解决方案,找到我自己的答案作为解决方案
Jasper 2015年

13

在我的情况下,问题是框架搜索路径具有不完整,无效,旧链接或多个相同类型的框架。删除它们,您的项目将毫无问题地编译。

一定要做Build-> clean

在此处输入图片说明


10

Xcode崩溃后,我遇到了相同的问题(第一个),但所有提议的解决方案都没有起作用。为了消除警告,我已经这样做了:

•管理计划...

•删除了当前方案

•现在自动计划


我们应该让原始问题的作者发布注释,以完成所有这些解决方案。一个列表。尝试第一个,第二个下一个解决方案,下一个解决方案...因为这是我迁移旧项目时所做的,其他解决方案是合理的解决方案。如果我不尝试所有方法,那我将不会找到这个……继续前进并混乱地游泳。弗朗切斯科!
马修·弗格森

8

这对我有用:

  1. 点击项目
  2. 点击构建设置
  3. 搜索“框架搜索路径”
  4. 清除路径并键入“ $(继承)”

6

我也似乎也遇到了同样的问题(这次是在XCode 5.0.2中)。就我而言,发生的事情是XCode决定转义“构建设置”中已经存在的引号。因此,例如:

"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1"

成为

\"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1\"

导致构建失败...

一旦我删除了引号中的转义符,一切都再次正常。另外,除非您需要,否则最好将其全部删除。


1
为此+1。在“们的事业‘目录未找到’错误都-L和-f选项那些逃逸。
威尔

1
非常有用的提示...在我的项目xcode 5.0.2中,在路径的开头,中间和结尾转义了引号....它也以一种奇怪的方式重复了某些框架的路径...删除了转义,让“框架路径”,用于项目正在使用的框架,并且摆脱了警告...在纠正路径之后也有必要删除/添加框架
Marcos Reboucas 2014年

6

如果在将Podfile添加到项目中并运行pod安装之后发生这种情况,请转到项目文件夹,您会看到一个已创建的新文件“ {ProjectName} .xcworkspace”-在xcode中打开该文件

已安装的Pod将在此文件中正确链接到您的项目


可能是因为您打开了项目文件而不是工作区。
杰森

3

请按照以下分步解决方案进行操作:

  1. 点击您的项目(目标);
  2. 点击构建设置;
  3. 在“库搜索路径”下,删除路径;
  4. ./**在库搜索路径上添加。

3

补充答案

据说所有答案都从目标中删除了框架或库搜索路径。我有两个问题:

  • 首先,我查看的是我的主要项目目标,而不是单元测试目标。
  • 其次,我不知道如何删除框架搜索路径。原来,只是单击它进入编辑模式,然后删除字符串。

我想尝试一下,但是我担心它会破坏应用程序。确定执行此操作后,一切都确定吗?
Supertecnoboff

@Supertecnoboff如果您担心它不起作用,请在删除字符串之前先保存它。您可以随时将其粘贴回去。我的应用程序已损坏,因此我只需要继续尝试直到可行为止。我上面的答案是对我有用的。
Suragch '16

1

对我来说,问题似乎是我没有包括适当的框架(从另一个项目复制插件时,我也没有复制框架文件)


1

这类错误的关键是进入构建设置并查看每个搜索路径部分,例如“库搜索路径”,“框架搜索路径”,甚至可能是“标题搜索路径”,并清除不再适用的任何路径,应用程序很难找到。移走他们,继续当好先生


1

去检查缺少哪个框架,然后去

=>构建阶段=>将二进制文件与库链接

删除库,然后重新添加


1

我有一个类似的问题,当我创建一个新方案并用它来重建时就消失了???


1

对我来说,我还启用了测试。测试的搜索路径也填写不正确。

清除常规代码和测试代码的框架搜索路径!


1

由于已输入搜索路径的自定义目录(frameworks和library),因此该项目将覆盖pod的目录。所以找不到。

要解决此问题,请从中删除所有自定义目录

搜索路径->库路径和框架路径,

只看到$ {inherited}。

我希望这有帮助。它为我工作。


1

在此处输入图片说明

在项目中添加$ (继承)-Objc -lcrypto-lssl- >构建设置->搜索路径->库搜索路径


上面的解决方案对我来说很好,如果对您不起作用,请分享屏幕截图。
Bandish Kumar,

1

如果在具有某些依赖项的Pod安装后发生这种情况,则问题可能出在您在Xcode上使用旧版本的app(.xcworkspace)。

安装Pod之后,这可能是您看到的输出。

Pod安装的输出。

Pod安装的输出

为此,请关闭当前的Xcode窗口并打开新的.xcworkspace。

打开新的xcworkspace]

打开新的xcworkspace


0

您应该检查以下选项:

构建设置->框架搜索路径-> {输入您的项目路径}


0

我研究了所有的[库搜索路径-框架搜索路径-标头搜索路径]。但是没有要删除的路径,因此我可以通过进入Xcode捆绑包并在警报所抱怨的路径位置创建一个空目录来使此警报消失。



0

如果您更改为MainApps新配置,请不要忘记在工作区中为Pod项目创建相同的配置。

例如,

在我的情况下,要解决这个问题,我不得不创建ReleaseOfficial配置以及对波德项目时,我创建ReleaseOfficial配置为我MainApp。


0

如果您安装了任何新的Pod,然后出现此错误,只需退出xcode>再次打开>构建项目


0

如果典型的解决方案不能解决问题,那么对我而言,解决的问题是确保xcode项目中的所有iOS版本(例如IPHONEOS_DEPLOYMENT_TARGET)/部署目标,podfile(如果适用)等都设置为相同的版本号。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.