错误"找不到库"

Vin*_*sPV 138 xcode admob ios

我在我的应用程序中添加了一个adob后出现错误.昨天该应用程序工作正常,但今天它不再工作..错误如下:

ld: library not found for -lGoogleAdMobAds
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

怎么解决?谢谢 !!

小智 290

我有类似的"未找到库"问题.然而,这是因为我不小心使用的是.xcodeproj文件而不是.xcworkspace文件.

  • 它帮了!我必须说,xcode是我见过的最糟糕的开发软件 (89认同)
  • xcworkspace是您使用Cocoapods的时候.这不是Xcode问题,而是用户. (8认同)
  • 这样的事情让我喜欢Javascript生态系统 (7认同)
  • 有人可以解释一下.xcodeproj和.xcworkspace的目的吗? (3认同)
  • 今天下午我浪费了足足 5 个小时,因为我没有意识到其中的区别。-_- (2认同)
  • .xcworkspace 是指您的解决方案中有超过 1 个“项目”。例如,您可以拥有在许多项目中使用的外部库(cocoapods)或您自己的库。 (2认同)
  • 这让我大约每 6 个月使用一次 XCode。对于 React-native 和其他类似的 Pods 密集型应用程序来说,这尤其是一个问题。您需要**工作空间**而不是项目。 (2认同)

rau*_*ora 111

有时您只需删除库的引用并再次添加引用.

除了从头开始再次添加Google移动广告SDK和其他库之外,我建议您查看" 库搜索路径".有些情况下你复制或复制一个目标,Xcode决定它需要转义任何双引号"带''\'.确保你删除所有的 - 它应该看起来像这样 -

在此输入图像描述

通过使用多个'\'为我的路径添加前缀,我能够复制错误.

  • @MassimoFrittelli 项目 > 构建设置选项卡 > 搜索路径。您也可以输入搜索选项。 (2认同)

Abu*_*min 80

选择您的目标,请"Build Phases""Link Binary With Libraries"删除".a"该库的文件.清洁和建设.

  • 是的,非常奇怪,以至于Xcode不会通过将其着色为红色来标记它为缺失 (3认同)

has*_*san 65

如果与Cocoapods有关的错误如下:

library not found for -lPod-...
Run Code Online (Sandbox Code Playgroud)

您需要检查其他链接器标志并从那里删除它.

额外信息:如果您有一个使用cocoapods的旧项目.最近你需要添加use_frameworks!你的podfile.cocoapods不再将库添加到您的Other Linker Flags中,因为它继承了.因此,在使用use_frameworks之前,您可能需要从添加它们的其他链接器标志中手动删除它们!


Ted*_*Ted 56

对于我的Xcode 7案例,也适用于Xcode 9.1

ld: library not found for -ldAfnetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

设置Build Active architecture OnlyYes

在此输入图像描述

  • 当我们需要为App Store创建生产版本时呢?我的意思是对于Production Build来说它应该是NO. (2认同)
  • 这对生产构建安装没有影响吗? (2认同)

Tee*_*aul 15

如果错误如下

ld:找不到-lpods的库

我发现在项目的Framework组中以某种方式创建了一个红色的文件"libPods.a"(比如缺少文件).我只是删除了该文件,一切都很好.

编辑:另一种解决方案

我已在类似问题中回答的另一个解决方案是在此链接中


eha*_*nom 11

如果您正在使用cocoapods并且不使用.xcworkspace文件而不是默认.xcodeproj文件,则会发生这种情况。


Hit*_*wal 10

goto Build Phases - > Link Binary With Libraries并删除显示错误的库,因为该库在项目文件夹中不可用


kko*_*dev 9

如果您打开项目文件而不是工作区,也会发生这种情况.我这样浪费了一天.


小智 5

答案很晚,但是这里是我尝试过的事情的清单,所以如果有人想解决这个问题,它将放在一个地方。

  1. 有效架构= armv7 armv7s
  2. 仅构建活动架构=否
  3. 目标->构建设置->其他链接器标志= $(继承)
  4. 目标->构建设置->库搜索路径= $(继承)
  5. 产品清洁
  6. 终端中的Pod更新