错误"找不到"

时间:2014-06-05 01:02:12

标签: ios xcode admob

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

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

如何解决?谢谢!!

24 个答案:

答案 0 :(得分:243)

我有一个类似的"未找到的图书馆"问题。但是,这是因为我不小心使用了.xcodeproj文件而不是.xcworkspace文件。

答案 1 :(得分:98)

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

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

enter image description here

我能够通过为多个'前缀我的路径来复制错误。

答案 2 :(得分:60)

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

答案 3 :(得分:57)

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

library not found for -lPod-...

您需要检查其他链接标记并将其从中删除。

  

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

答案 4 :(得分:52)

对于我的案例 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)

Build Active architecture Only设为Yes

enter image description here

答案 5 :(得分:9)

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

答案 6 :(得分:8)

转到构建阶段 - >链接二进制文件库并删除显示错误的库,因为该库在项目文件夹中不可用

答案 7 :(得分:4)

答案迟到了,但这里是我尝试过的事情清单。如果有人想尝试解决这个问题,它会在一个地方。

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

答案 8 :(得分:3)

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

答案 9 :(得分:1)

在我的情况下,有一个命名问题。我的库被称为ios-admob-mm-adapter.a,但Xcode期望该名称应以前缀 lib 开头。我刚刚将我的lib重命名为libios-admob-mm-adapter.a并解决了问题。

我使用Cocoapods,它在我的目标的构建设置中使用其他链接器标志选项链接库。该标志看起来像-l"ios-admob-mm-adapter"

希望它可以帮助别人

答案 10 :(得分:1)

简单的解决方案。这是解决问题的方法:

  1. 转到目录platforms/ios
  2. 然后,执行命令pod install

就是这样。这应该安装缺少的库。

答案 11 :(得分:0)

  1. 清洁的构建文件夹
  2. 重新启动XCode

走开...

答案 12 :(得分:0)

我也遇到了同样的问题,花了超过 24 小时来解决这个问题,我尝试了上述解决方案中的所有方法,但最终对我有用的是

1)构建设置 -> 选择目标 2)基础知识 3)用户自定义 4) 将 VALID_ARCHS 改为 arm64

答案 13 :(得分:0)

我在找不到类似的库错误。最终,这就是我能够解决的方式

  1. 在开始使用Xcode Archive之前,先使用flutter构建iOS
  2. 将IOS部署目标更改为更高的目标iOS 11.2。早些时候,我遇到了类似8.0的问题,但出现了以上所有错误。
  3. 确保Xcode中的IOS部署目标在Project,Target和Pod中相同

答案 14 :(得分:0)

Static Library引起的Static Linker的编译时错误

ld: library not found for -l<Library_name>

如果您未包含指向Library not found for的库路径,则会出现错误Library Search Paths

ld表示Static Linker找不到库的位置。作为开发人员,您应该帮助链接器并指向Library Search Paths

Build Settings -> Search Paths -> Library Search Paths 

答案 15 :(得分:0)

在发生ld: library not found for -{LIBRARY_NAME}的情况下,因为库文件不存在。

  

在应用程序目标的“构建阶段”中检查库路径   “库搜索路径”标签。

库文件的路径必须符合实际路径,例如,如果您的文件位于项目根目录中,则必须将路径设置为$(PROJECT_DIR)

答案 16 :(得分:0)

对于我来说,发生此问题是因为我为IOS安装了Material Library。 解决这个问题

1:转到目标应用的构建设置

2:搜索其他链接器标记

3:打开其他链接器标志,并检查错误中提到的库。

4:删除该标志。

5:清理并构建。

我希望这可以解决您的问题。

答案 17 :(得分:0)

在我的项目中运行“ pod更新”解决了“找不到-lSTPopup库”错误的问题。

评论Trevor Panhorst的答案:

“如果未在pod文件中使用显式版本,请小心进行pod更新。”

答案 18 :(得分:0)

我只是更新了pod文件“ pod update”,它开始对我正常工作。

答案 19 :(得分:0)

简单地说,项目目标中缺少GoogleAdMobAds.a。 对我而言是libAdIdAccessLibrary.a请查看随附的屏幕截图

enter image description here

答案 20 :(得分:0)

我尝试将构建配置Release重命名为Production,但显然可可豆荚并不喜欢它。我再次将其重命名为Release,一切都很好。

答案 21 :(得分:0)

这个错误非常奇怪。

我在-ldAfnetworking中遇到此错误,我只在其他路径中复制我的项目并且有效。

答案 22 :(得分:0)

我知道这有点老了,但我遇到了类似的问题,并且正在运行“更新”#39;为我修好了。我的库错误是AFNetworking ...

如果您不在pod文件中使用显式版本,请小心进行pod更新。

答案 23 :(得分:-3)

watchman watch-del-all; npm start -- --reset-cache

似乎是为我做的......我发现当其他所有方法都失败时我经常这样做