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 target
从7.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】:这是我在尝试使用 cocoapods 将 Firebase 集成到我的 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 的库
使用 React-native-permissions 尝试使用 xcode ld 构建时出现此错误:找不到 -lPermission-LocationWhenInUse 的库