错误:ld:找不到带有CocoaPods的-lPods的库

时间:2014-05-06 08:44:35

标签: ios objective-c cocoapods dtcoretext

在我用Cocoapods安装DTCoreText(https://github.com/Cocoanetics/DTCoreText)后,当我尝试运行模拟器或设备时总是出错!

ld: warning: directory not found for option '-L/Users/example/Desktop/ios/Pods/build/Release-iphoneos'
ld: warning: directory not found for option '-L/Users/example/Desktop/ios/Pods/build/Debug-iphoneos'
ld: library not found for -lPods-example
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

在我的“Link Binary With Libraries”中,“libPods”部分为红色:

enter image description here

以下是我的构建设置:

我的项目设置:

enter image description here

我的Pod的设置:

enter image description here

修改

我不确定问题是什么,但是当我删除所有DTCoreText和Cocoapods的东西并重新安装所有东西时我解决了它!

13 个答案:

答案 0 :(得分:48)

建议尝试以下方法,这对我有用:

a)从“目标设置”视图中的“库”进行搜索,然后双击以检查Library Search Paths的值

b)列出$(inherited)$(PROJECT_DIR)/Pods/build/Debug-iphoneos两个值。删除后者。

c)做一个完整的清洁,构建&运行

d)再次运行pod install。请注意,该条目未恢复。

答案 1 :(得分:35)

这也可能有所帮助:

  1. 在您的主项目(不是Pods)中选择主要目标
  2. 转到构建阶段标签
  3. 转到链接二进制文件库
  4. 删除导致问题的库(可能是红色)

答案 2 :(得分:25)

在我的链接二进制文件中,我同时拥有libPods.alibPods-MyProj.a。我以前更新了我的Podfile以获得两个单独的目标(通过桥接在Swift中进行编译测试),这意味着我必须手动删除旧的lidPods.a依赖项。

答案 3 :(得分:23)

确保打开.xcworkspace文件,而不是.xcodeproj

答案 4 :(得分:8)

我发现其他链接标记构建设置中缺少$(inherited)。应用此选项修复了我看到的缺少库问题。

答案 5 :(得分:5)

我发现选择“Find implicit Dependencies”(在产品/编辑方案下)将解决此问题,而不必将pod添加为目标。

答案 6 :(得分:4)

在目标的Build Settings页面中查找“Library Search Path”。将Debug的文件夹名称从Debug-iphoneos更改为Debug-iphonesimulator

答案 7 :(得分:2)

造成这个问题的原因有很多。

我们需要检查:

  • 构建设置$(inherited)
  • 检测所有隐式依赖项
  • .......

疑难解答http://guides.cocoapods.org/using/troubleshooting.html

答案 8 :(得分:2)

确保实际构建缺少的pods库。为此,请打开构建方案

Product > Scheme > Edit Scheme... > Build

添加Pods目标并将其放在抱怨该库丢失的目标之前(在我的情况下,这是UI测试 - 我只是努力了几个小时......)

答案 9 :(得分:2)

对我来说,错误是:Pods目标不包含i386所需的架构切片。所以我点击了Pods项目 - >对于调试发布,Pods-ProjectName目标和构建设置中的仅构建活动架构为否。这样可以确保构建模拟器和设备切片。模拟器使用i386架构,实际设备使用x86-64。因此,如果要在模拟器上运行并同时加载到设备,则必须确保所有相关项目的所有相关目标都在构建。

答案 10 :(得分:0)

当您使用App扩展时,导航到扩展目标,并过滤到库搜索路径,删除编译器警告您的路径。

答案 11 :(得分:0)

armv7中的VALID_ARCHS中删除Build Settings对我来说解决了这个问题(Xcode 10.3)。在armv7s中只有arm64arm64eVALID_ARCHS之后,我才能提交。

答案 12 :(得分:0)

首先我跑

<块引用>

sudo rm -r /Library/Developer/CommandLineTools

删除命令行工具目录。 然后我再次安装了命令行工具

<块引用>

xcode-select --install

这为我解决了这个问题。