Xcode - ld:找不到 -lPods 的库

Posted

技术标签:

【中文标题】Xcode - ld:找不到 -lPods 的库【英文标题】:Xcode - ld: library not found for -lPods 【发布时间】:2014-06-25 16:34:18 【问题描述】:

我在尝试构建 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 中拉出来检查一下。

【问题讨论】:

【参考方案1】:

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

【讨论】:

我还发现构建 pod 目标很有帮助,而不是普通的 Xcode 目标。 打开后根本无法运行我的项目。我该怎么办? 我注意到Pods 的引用在.xcodeproj 中,但不在.xcworkspace 中,因此此解决方案有效。 Cd 进入项目文件夹并运行“pod update”。如果没有 pod,请搜索如何安装。 我在打开 .xcworkspace 时收到了该错误消息(更具体地说,这一次在 mac 上有效,而在另一次无效)。就我而言,发现 与重命名项目并随后将其复制到另一台计算机相关的问题,库未复制到新位置。比较:/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[OLDPROJECTNAME]-[LONGRNDCHARS]/Build/Products 与:/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[NEWPROJECTNAME]-[LONGRNDCHARS]/Build/Products【参考方案2】:

也有这个问题。我的 CocoaPods 安装出了点问题。除 KIF 外,没有任何 pod 安装正确。我关注了this thread 上的 cmets 以提供帮助。

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

【讨论】:

我必须确保我的项目的目标和 pod 的目标之间也相等... 这种情况每 6 个月在我身上发生一次,我不记得上次我是如何解决它的...仅构建活动架构。 . .愿我们都记得【参考方案3】:

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

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

Library not found -lPods-(someCocoapod) 错误是由于 :

中有多个条目
Settings(Target) > Build Settings > Linking > 'Other Linker Flags'

很多其他帖子让我看了看,当我弄乱这些条目时,我会看到错误的变化,但我一直在同一错误上得到一些变化。

浪费了太多时间......

我的修复:

仅当 $(inherited) 位于顶部时,才删除“其他链接器标志”列表中的 -lPods-(someCocoaPod) 行。起初我不确定,但令人放心的迹象是,当我离开编辑模式(继承)时,我仍然看到对我的 cocoapods 的引用。我在debug和release中测试过,都报错,问题马上解决了。

【讨论】:

工作就像一个魅力,谢谢。我在 El Capitan 上更新到 Swift 2.0 时才遇到这个问题。以前工作得很好。 我只有 $(inherited),同时我有这些令人沮丧的骗局。在哪里可以编辑 $(inherited) 变量的原始值? 你拯救了我的一天......在这个问题上停留了一段时间......它的发生是因为我已经删除了整个 pod 项目并重新添加了它 也为我修复了。我自己永远也想不通! 你赢了!像魅力一样工作【参考方案4】:

项目似乎一直在使用cocoapods。并且您的项目中缺少这些文件。

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

如需更多帮助,您可以关注Introduction to CocoaPods Tutorial

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

【讨论】:

@RahulPatel 如何安装特定文件你能分享命令吗 如果你想使用新的测试版可以使用:pod 'GoogleAds-IMA-iOS-SDK-For-AdMob', '3.0.beta.16'【参考方案5】:

以下配置解决了我的问题:

Build Active Architecture Only: YES

【讨论】:

当我遇到 SDWebImage 的问题时,这对我有用......对于那些在这里找到了 Cocoapod 组件的人 这为我解决了这个问题,但又导致了另一个问题。我需要为所有架构构建,而不仅仅是活动架构。 在旧代码中,我正在集成 pod。我面临同样的问题。以上答案有帮助。【参考方案6】:

如果您的项目中有多个目标,Cocoapods 可能只与其中一个很好地集成。

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

【讨论】:

我认为 pod install 没有将 libPods.a 文件集成到所有目标,因为我添加了 Rizwan istruction 并且它可以工作......谢谢 Rizwan Sattar 这对我有用,尽管它没有显示为红色。之后我运行了 pod install 并没有添加它,但似乎一切正常。 实际上,我需要做的是删除一个过时的 (my-project-name).a 库,因为我之前重命名了该项目,它只是卡在那里。我提高了你的回答,因为它让我知道问题可能出在哪里。【参考方案7】:

如果有人在使用Cocoapods 安装它后来到这里解决react-native-fbsdk 的错误,请记住,您必须删除项目中的所有其他 .a 文件构建阶段和只保留 .a 来自名为 libPods-WhateverAppName.a 的 cocoapods。

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

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

【讨论】:

【参考方案8】:

这个与 lPods 相关的问题可以按照以下步骤解决

选择您的项目目标。 在"Link Binary With Libraries" 中转到"Build Phases"。 现在删除导致问题的那个库的".a" 文件。 清理和构建。

这会起作用。

【讨论】:

在我的情况下删除 libstdc++.6.dylib 解决了这个问题! 删除“libstdc++.6.dylib”的方式和位置,因为我需要删除“-lstdc++.6”。我收到“找不到 -lstdc++.6 的库”【参考方案9】:

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

我所做的是在target 部分之外使用pod 命令运行pod install。比如:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

我迅速修复它并将错误的 pod 返回到它所属的 target 部分并再次运行 pod install

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

但同时发生的事情是 lib -libPods.a 被添加到我的链接库中,它不再存在并且不应该存在,因为那里已经存在 -libPods-My Target.a

因此解决方案是进入我的 Target 的常规设置,然后转到 Linked Frameworks and Libraries,然后从列表中删除 -libPods.a

【讨论】:

我为我的项目正确安装了 cocoapods,但出现与 OP 相同的错误。删除 -libPods.a 为我解决了这个问题。谢谢你,先生。 我正在更新一个旧项目,并废弃旧的 Podfile 并运行 pod init 来设置一个新的,发现旧文件就像你的 # WRONG 方式,而新文件是喜欢# CORRECT。谢谢!【参考方案10】:

我的步骤:

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

除了确保“构建活动架构”设置为之前的答案中提到的“是”之外,这就是为我所做的。

【讨论】:

+1 在我的情况下,如果它是 -lHelpshift 或 pod 的特定名称。然后我只删除特定文件夹,因此它是Pods/Helpshift。然后再次执行pod install。无需更新。现在可以了。 删除所有 pod 然后重新安装有帮助。【参考方案11】:

Deployment target7.0 升级到8.0 并启用use_frameworks! 后遇到同样的问题

cocoapods 没有从我的项目的Frameworks 部分删除之前生成的PodName.a 文件。

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

【讨论】:

【参考方案12】:

花了一些时间才弄清楚...我正在尝试构建 swift 框架,该框架又依赖于一个可可豆库,我在发布模式下创建构建时遇到此错误,在调试模式下它工作正常!

我验证了所有目标是否具有相同的部署目标,并发现不匹配的 pod 目标具有与我的框架不同的 iOS 部署目标,因此我在所有地方(swift 框架、pod 目标)都保留了相同的 iOS 部署目标,它就像魅力一样!

【讨论】:

你是我的英雄!我收到关于 lBVLinearGradient 的错误,但这解决了它!【参考方案13】:

删除所有导入的cocoapods源码对应的文件/文件夹,除了podfile。

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

【讨论】:

【参考方案14】:

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

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

经过数小时的搜索和尝试 *** 中列出的各种修复后,我的问题终于通过以下步骤得到解决

    转到Build Settings,搜索Other Linker Flags,删除除$(inherited)之外的所有值

对所有目标执行此操作。

    删除 pods 文件夹。 (ios/Pods) 做pod update

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

【讨论】:

这也需要发生在我身上。但是,在我的情况下,它也是一个添加了 Firebase Analytics 的 react-native 应用程序。截至 2018 年 7 月,所有应用程序必须使用 iOS 11 每个 Apple 构建:developer.apple.com/ios/submit/ 一旦我转到我的常规选项卡并向下滚动到部署信息/部署目标并将其从 10.x 更改为是我的目标,到 11.x - 应用程序已构建/存档并且我能够提交。【参考方案15】:

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

这里一步一步你需要做什么:

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

祝你好运!

【讨论】:

【参考方案16】:

对我来说,关注已经奏效了。

    转到“项目目标 -> 构建设置 -> 预处理 -> 预处理器宏”。在“Preprocessor Macros”下的所有Debug、Integration、Release中设置“COCOAPODS=1” 在“项目目标”下的“其他链接器标志”中添加以下内容
      $继承 -ObjC -lc++ -all_load

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

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

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

然后在此链接中尝试 Mike 先生的回答

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

希望对你有帮助!

【讨论】:

【参考方案17】:

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

【讨论】:

【参考方案18】:

如果项目使用 CocoaPods,请注意始终打开 .xcworkspace 文件而不是 .xcodeproj 文件。 如果您使用的是 .xcworkspace ,请通过删除 pod 重新安装 pod 文件,然后重新插入 pod 并安装它!这对我有用

【讨论】:

【参考方案19】:

花了半天时间后,我发现了我的问题。由于某些依赖关系,我已将部署目标从 10 提高到 12.1。我更新了项目部署目标和我所有的 pod。

我刚刚发现在目标级别也有一个部署目标。将此升级到 12.1 后,我的项目再次构建。

“项目”的部署目标

Podfile:

“目标”的部署目标:

【讨论】:

【参考方案20】:

我的方式

    创建新项目并安装 pod,它可以正常运行。

    将新项目中“其他链接器标志”中的文本复制到旧项目。将旧项目制作成同一个新项目。

    也检查“标题搜索路径”。

【讨论】:

【参考方案21】:

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

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

【讨论】:

【参考方案22】:

我遇到了同样的错误。

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

修复:后来我发现添加依赖项时,Workspace 会在现有项目中自动创建。并且必须在那个工作空间上工作。

【讨论】:

这个答案没有明确说明如何解决已提出的问题【参考方案23】:

以下解决方案适用于 core-plot 2.3 版本。 在其他链接器标志部分下进行以下更改。

1.添加$(inherited)并将此项拖到顶部位置 2.从-l"Pods-fmemopen"、l"Pods-NSAttributedStringMarkdownParser"和-l"Pods-MagicalRecord"中去掉"Pods-"前缀。

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

【讨论】:

【参考方案24】:

我遇到了同样的问题

命令行上的 pod install 和 pod update 解决了我的问题

【讨论】:

【参考方案25】:

我对名为 linear-gradient 的 react-native 库有同样的问题,但我认为是在 -L -L 之间添加空格引起的问题...这里是错误屏幕

我正在尝试此页面中的所有解决方案,谢谢您的帮助

【讨论】:

你找到解决办法了吗?我也有同样的问题 同样的问题,如果你解决了,请分享解决方案

以上是关于Xcode - ld:找不到 -lPods 的库的主要内容,如果未能解决你的问题,请参考以下文章

ld:在 Xcode 中找不到 -lFirebaseCore 的库反应原生

ld:找不到-lIOKit.A clang xcode 的库

ld:找不到 -lPayPalMobile ios 的库

找不到 -lDoubleConversion 的库

使用 React-native-permissions 尝试使用 xcode ld 构建时出现此错误:找不到 -lPermission-LocationWhenInUse 的库

Xcode 错误:找不到 -lGoogleToolboxForMac 的库