【问题标题】:Xcode - ld: library not found for -lPodsXcode - ld:找不到 -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 中拉出来检查一下。

【问题讨论】:

    标签: ios objective-c xcode clang cocoapods


    【解决方案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】:

      我的步骤:

      1. 删除 pods 文件夹和“Pods”文件。
      2. 在终端中键入“pod install”。
      3. 在终端中输入“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)
          

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

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

          对所有目标执行此操作。

          1. 删除 pods 文件夹。 (ios/Pods)
          2. 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】:

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

            1. 转到“项目目标 -> 构建设置 -> 预处理 -> 预处理器宏”。在“Preprocessor Macros”下的所有Debug、Integration、Release中设置“COCOAPODS=1”
            2. 在“项目目标”下的“其他链接器标志”中添加以下内容
              1. $继承
              2. -ObjC
              3. -lc++
              4. -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】:

                    我的方式

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

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

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

                    【讨论】:

                      【解决方案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 之间添加空格引起的问题...这里是错误屏幕

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

                            【讨论】:

                            • 你找到解决办法了吗?我也有同样的问题
                            • 同样的问题,如果你解决了,请分享解决方案
                            猜你喜欢
                            • 2014-03-05
                            • 2015-12-22
                            • 2014-07-27
                            • 2017-03-31
                            • 1970-01-01
                            • 1970-01-01
                            • 2015-12-06
                            • 1970-01-01
                            • 2015-01-23
                            相关资源
                            最近更新 更多