Xcode-ld:-lPods找不到库


184

尝试构建iOS应用程序时出现这些错误。

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

Ld /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox normal x86_64
cd /Users/Markus/Development/xcode/totalbox-ios
export IPHONEOS_DEPLOYMENT_TARGET=7.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -L/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -F/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -filelist /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.1 -framework CoreGraphics -framework UIKit -framework Foundation -lPods -Xlinker -dependency_info -Xlinker /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox_dependency_info.dat -o /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox

构建设置中的PODS ROOT:

${SRCROOT}/Pods

我没有创建此Xcode项目-只是将其从git中拉出以进行检查。

Answers:


599

如果项目使用CocoaPods,请始终打开.xcworkspace文件而不是.xcodeproj文件。


2
我还发现构建pod目标而不是普通的Xcode目标很有帮助。
Don Simon)

1
打开它之后,我根本无法运行我的项目。我该怎么办?
犬夜叉

我注意到在中引用了Pods.xcodeproj但没有引用.xcworkspace,因此为什么该解决方案有效。
杰克逊(Jacksonkr)

1
将CD插入项目文件夹,然后运行“ pod update”。如果没有吊舱,请搜索如何安装。
justinkoh

2
打开.xcworkspace时收到错误消息(更具体地说,这在Mac上一次有效,而在另一台则无效)。以我为例,发现了与重命名项目并将其复制到另一台计算机有关的问题,库没有复制到新位置。比较:/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[OLDPROJECTNAME]-[LONGRNDCHARS]/Build/Products至:/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[NEWPROJECTNAME]-[LONGRNDCHARS]/Build/Products
Yatko

97

也有这个问题。我的CocoaPods安装出现问题。除KIF之外,没有其他吊舱安装正确。我按照此主题的评论提供帮助。

基本上,我需要确保Build Active Architectures Only我的项目和Pods项目的设置都相等。


7
我必须确保它也是我的项目的目标和吊舱的目标之间的平等...
尼姆罗德夏嘉曦

这种情况每6个月发生一次,而且我不记得上次如何解决它了……仅构建Active Architecture。。。愿我们都记得
Kanongata

51

经过数小时的研究,此解决方案对我有用:

(免责声明:结果可能因情况而异)

Library not found -lPods-(someCocoapod)错误是由于中的多个条目引起的:

Settings(Target) > Build Settings > Linking > 'Other Linker Flags'

我还有很多其他的帖子在那儿看,当我弄乱这些条目时,我会看到错误的变化,但是我在相同的错误上不断变化。

损失了太多时间...

我的修正:

除去-lPods-(someCocoaPod)线路中的“其他链接器标记”列表仅当$(继承)是在顶部。起初我不确定,但令人放心的迹象是,离开编辑模式(继承)时,我仍然看到对我的cocoapods的引用。我在调试和发行版中进行了测试,两者都给了我错误,并且该问题立即得到解决。


像魅力一样工作,谢谢。在El Capitan上更新到Swift 2.0时,我只有这个问题。之前工作完美。
Ovi 2015年

我只有(继承)$,同时有这些令人沮丧的骗子。在哪里可以编辑$(inherited)变量的原始值?
nickolay

您救了我的老兄...。在这个问题上停留了一段时间...发生是因为我删除了整个吊舱项目并重新添加了它
Mihir Mehta 2015年

也为我修复。从来没有想过自己解决这个问题!
bmueller

你打!像魅力一样工作
Rob Sanders

31

看来项目一直在使用可可足类。并且该文件从您的项目中丢失。

您不能只从git下载它。您需要从cocoapods安装它。

如需更多帮助,您可以按照CocoaPods入门教程

如果项目使用CocoaPods,请始终打开.xcworkspace文件而不是.xcodeproj文件


1
@RahulPatel如何安装特定的文件,可以请你分享命令
阿肖克Londhe

如果要使用新的Beta版本,则可以使用:pod 'GoogleAds-IMA-iOS-SDK-For-AdMob', '3.0.beta.16'
Berendschot 2015年

27

如果您的项目中有多个目标,Cocoapods可能仅将其中之一与自身完美集成。

对于我拥有的libPods.a每个其他目标,我必须手动链接到“使用库链接二进制文件”。

我的框架列表中的libPods.a


我认为Pod安装未将libPods.a文件集成到所有目标,正如我添加的Rizwan istruction一样,它可以正常工作...感谢Rizwan Sattar
Wagh

这对我有用,尽管它没有以红色显示。之后,我运行了pod install,但没有添加它,尽管一切似乎正常。
Jules

2
实际上,我需要做的是删除一个过时的(my-project-name).a库,因为我之前重命名了该项目,而该项目只是卡在了那里。我提高了您的答案,因为它为我提供了有关问题可能出在哪里的想法。
kalafun

您是救生员!
Yuliwee

24

我的问题已通过以下配置解决:

Build Active Architecture Only: YES

当我遇到SDWebImage问题时,这对我有用。...对于那些在这里找到了该Cocoapod组件的人
Scott D

这为我解决了这个问题,但又引发了另一个问题。我需要为所有架构构建,而不仅仅是活动架构。
HotFudgeSunday

在旧代码中,我正在集成Pod。我正面临着同样的问题。以上答案有所帮助。
Shashank Kulshrestha

15

如果有人react-native-fbsdk使用安装后解决此错误Cocoapods,请记住,您必须在Projects的构建阶段中删除所有其他.a文件,而只能从名为cocoapods的.a中保留该文件libPods-WhateverAppName.a

只有那留在这里

这通常是由于运行rnpm link和rnpm工作方式引起的。

从构建阶段删除了facebook core .a文件后,我的项目再次启动并运行。


11

可以通过以下步骤解决与lPods相关的问题

  • 选择您的项目目标。
  • "Build Phases""Link Binary With Libraries"
  • 现在,删除".a"造成问题的该库的文件。
  • 清洁并建造。

这将起作用。


以我为例,删除libstdc++.6.dylib解决了问题!
伊戈尔·德洛伦兹

正如我需要删除“ -lstdc ++。6”一样,如何以及在何处删除了“ libstdc ++。6.dylib”。我收到“找不到-lstdc ++。6的库”
Hari Narayanan

10

上述答案都没有为我解决。

相反,我所做的是pod install使用podtarget部分之外的命令运行的。因此,例如:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

我迅速修复了它,并将错误的吊舱返回到target它所属的部分,然后pod install再次运行:

# CORRECT
target "My Target" do
    pod 'SOMEPOD'
    pod 'OTHERPODS'
end

但是与此同时发生的是,该库已-libPods.a添加到我的链接库中,该库已不存在,也不应添加,因为其中已经存在该库-libPods-My Target.a

因此,解决方案是进入目标的“ 常规”设置,然后转到“ 链接的框架和库”,然后-libPods.a从列表中删除。


我为项目正确安装了cocoapods,但与OP发生了相同的错误。删除-libPods.a可以为我解决。先生,谢谢。
NKorotkov '16

我正在更新一个旧项目,然后废弃旧的Podfile并运行pod init以建立一个新项目,发现旧文件就像您的# WRONG方式,而新文件则像# CORRECT。谢谢!
BJ米勒

8

我的步骤:

  1. 删除pods文件夹和“ Pods”文件。
  2. 在终端中输入“ pod install”。
  3. 在终端中输入“ pod update”。

正如前面的答案中所述,除了确保将“ Build Active Architectures”设置为YES之外,这还为我做了。


如果是+1,-lHelpshift或者是pod 的特定名称,则为+1 。然后,我只删除特定的文件夹Pods/Helpshift。然后再做pod install一次。无需更新。现在可以使用了。
haxpor

1
删除所有吊舱,然后重新安装有所帮助。
Sanad Liaquat

7

Deployment target从升级7.08.0并启用后出现了相同的问题use_frameworks!

cocoapods没有PodName.aFrameworks我的项目部分删除以前生成的文件。

因此,我不得不手动删除它们,因为它们导致了 linker error


4

删除导入的cocoapods源的所有相应文件/文件夹(podfile除外)。

install cocoapod 再次。这应该清除来自原始源的任何冗余拉动。


3

从使用Cocoapods的地方克隆项目时,需要将它们安装到项目中。

请按以下步骤操作:

  • 1)将源代码克隆到本地计算机;
  • 2)关闭xcode项目(如果打开);
  • 3)通过在终端上运行以下命令在您的Mac上安装cocoapods应用程序:“ gem install cocoapods ”,如果不起作用,请在开头添加“ sudo ”;
  • 4)在终端中使用“ cd ”命令转到xcode项目的根目录;
  • 5)您应该在此文件夹中有Podfile;如果您想使用:“ cat Podfile ”命令再次检查它,它将显示该文件的内容以及必须安装到您的项目中的库;
  • 6)然后使用“ pod install ”命令将库下载并安装到您的项目中;该Podfile.lock将被创建和{项目名称} .xcworkspace文件;
  • 7)从现在开始,您必须使用{您的项目名称} .xcworkspace在xcode中打开它;

祝好运!


3

这是我尝试使用cocoapodsFirebase集成到我的Xcode项目时的问题

library not found for -lGoogleToolboxForMac
linker command failed with exit code 1 (use -v to see invocation)

经过数小时的搜索并尝试了stackoverflow中列出的各种修复程序,终于按照以下步骤解决了我的问题

  1. 转到Build Settings,搜索Other Linker Flags,删除所有期望的值$(inherited) 图片

对所有目标执行此操作。

  1. 删除pods文件夹。(ios/Pods
  2. pod update

瞧!所有链接器错误都将消失。


这对我来说也需要发生。但是,在我的情况下,这也是添加Firebase Analytics的本机应用程序。截至2018年7月,所有应用必须在每个Apple的iOS 11上构建:是我针对的目标,即11.x-已构建/存档的应用程序,我能够提交。
bo_

2

对我来说,以下工作奏效了。

  1. 转到“项目目标->构建设置->预处理->预处理器宏”。在所有“调试器宏”下的“调试,集成,发行”中设置“ COCOAPODS = 1”
  2. 在“项目目标”下的“其他链接器标志”中添加以下内容
    1. $继承
    2. -奥比西
    3. -lc ++
    4. -all_load

清理并运行项目。如果仍然收到错误消息,请尝试将“项目目标->构建设置->仅构建活动体系结构”设置为“调试”为“是”,将“集成和发布”为“否”。然后,对所有“ Pods目标”重复相同的“仅构建活动体系结构”设置。

清理并运行项目。如果您收到以下错误

 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

然后在此链接中尝试迈克先生的答案

Xcode 5.1-没有要编译的架构(ONLY_ACTIVE_ARCH = YES,活动arch = x86_64,VALID_ARCHS = i386)

希望能帮助到你!


2

在具有多个目标的项目中,更改方案和应用程序名称并尝试更新Pod之后,我遇到了相同的问题。该问题是由于在Build Phases-> Link Binary with Libraries中的多个条目而导致的,其中列出了先前的.a库和当前的.a库,而先前的.a库不再存在。从那里删除库可以解决问题。


1

我的方式

  1. 创建新项目并安装Pod,它将可以正常运行。

  2. 将新项目中“其他链接器标记”中的文本复制到旧项目中。将旧项目更改为相同的新项目。

  3. 还要检查“标题搜索路径”。


1

对我来说,这是可行的。我已将我的应用程序名称从someApp更改为otherApp。我正在将可可豆荚用于多个第三方服务集成。因此,由于添加了2个libPod文件(因为我更改了应用的名称和目标)。最后,我不得不删除一个libPod。而且有效。

目标->构建阶段->使用库链接二进制文件


1

我遇到了同样的错误。

问题:我创建了一个单独的工作区,并将现有项目添加到其中。在该工作区上工作时出现错误。

解决方法:后来,我发现添加依赖项时会在现有项目中自动创建Workspace。并且必须在该工作区上工作。


该答案没有明确说明如何解决所提出的问题
Mark

1

以下解决方案对我的核心版2.3版本有效。在其他链接器标志部分下进行以下更改。

1.添加$(继承),并将其拖到顶部位置。2.从-l“ Pods-fmemopen”,l“ Pods-NSAttributedStringMarkdownParser”和-l“ Pods-MagicalRecord”中删除“ Pods-”前缀。

如果问题仍然存在,最后查看是否设置了PODS_ROOT。您可以在“用户定义”部分下进行检查。


1

我有同样的问题

命令行上的pod安装和pod更新解决了我的问题


1

如果项目使用CocoaPods,请注意始终打开.xcworkspace文件而不是.xcodeproj文件。如果您使用的是.xcworkspace,请通过卸下吊舱重新安装吊舱文件,然后再次插入吊舱并进行安装!这对我有用

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.