【问题标题】:Linker command failed with exit code 1 error in Xcode project链接器命令失败,Xcode 项目中出现退出代码 1 错误
【发布时间】:2012-06-04 09:01:53
【问题描述】:

我正在处理我的项目,在编辑代码并编译后突然出现此错误:

ld:警告:找不到选项“-
”的目录 L/Users/mani/Documents/Classes/Twitter+OAuth/Libraries & Headers' ld: 重复符号 _OBJC_CLASS_$_playSiew 在 /Users/mani/Library/Developer/Xcode/DerivedData/learn-aktrtiwswclovoatyweyquoxmypa/Build/Intermediates/learn.build/Debug-iphonesimulator/learn.build/Objects-normal/i386/playSiew.o 和 /Users/mani/Library/Developer/Xcode/DerivedData/learn-aktrtiwswclovoatyweyquoxmypa/Build/Intermediates/learn.build/Debug-iphonesimulator/learn.build/Objects-normal/i386/Thumb.o 对于架构 i386 clang:错误:链接器命令失败并退出 代码 1(使用 -v 查看调用)

我从未接触过项目设置,只是编辑了代码。

更奇怪的是,我从svn中取出了上次修改后的代码,但还是出现了同样的错误。

【问题讨论】:

  • 您可能在 playSiew.m 文件中声明了一些 ivars,并且您在另一个 .m 文件中声明了相同的名称。这可能对您有所帮助,因为我也遇到了这个重复的符号错误,它对我有用
  • 但是为什么我现在面临这个错误?以前没遇到过这个问题,突然出现了?
  • 检查你的导入语句,好像你已经导入了两个具有相同命名符号的库
  • 我认为你已经从位置更改了代码。所以没有引用我认为这是导致问题的原因

标签: iphone objective-c ios xcode


【解决方案1】:

您可能不小心#import'ing .m 文件而不是 .h。使用 Cmd+Shift+F 并搜索“.m”(不带引号)。它很可能属于警告中提到的类别之一。如果没有,请清理并再次运行。

【讨论】:

  • 正如我所说....之前在 svn 中修改过的代码也不起作用...所以绝对不是代码的问题。此外,我遇到问题的相同代码在我的团队成员的 mac 上运行良好
  • 实际搜索 .m"(带有结尾引号)可能有助于更快地找到它
【解决方案2】:

我也遇到了同样的问题,我关注了,问题就消失了。

转到 Product -> Clean 并重新运行项目。

我希望它可能对其他一些开发者有用。

【讨论】:

  • 我发现了同样的事情。尝试神秘的失败总是一件好事。
【解决方案3】:

几分钟前遇到这个问题后(是的,我知道距离最初的线程已经 7 个月了)我发现我的问题的根源是我在 XCode 中将文件拖放到我的项目中而不是正确的-单击并选择将文件添加到项目。

【讨论】:

  • 两年后...我总是将图像文件拖放到我的项目中。我刚刚发生了这种情况,清理项目解决了它。当然,因为这基本上是一个掷骰子错误消息,谁知道这是否适用于其他人。
【解决方案4】:

检查 playSiew.m 在编译源部分。不是吗?

您可以按照此步骤找到编译源部分

  1. 选择您的项目名称
  2. 选择目标
  3. 选择构建阶段

如果本节中没有 playSiew.m 。您必须将其添加到此部分。

【讨论】:

    【解决方案5】:

    正如我所说,问题不在于代码,而在于某些设置。所以我所做的是从我朋友的 Mac 上复制代码(它工作正常),并将该项目的新副本安装到我的 Mac 上。它奏效了。

    【讨论】:

      【解决方案6】:

      我在我的 pod 文件 中为主要目标指定的测试用例中导入了一个,但没有为测试目标

      【讨论】:

      • 救了我的命。我在想我错过了导入其他人添加的一些文件。但实际上是这样的,pod 文件中的一个 lib 移动了一个位置,并没有包含在测试目标中!
      【解决方案7】:

      我也收到了这个错误,因为我不小心包含了同一个源文件的两个版本。删错了,问题就解决了……

      【讨论】:

        【解决方案8】:

        如果您在 Unity 中工作并导出到 iOS 并且正在使用插件,请转到 Xcode Build Settings 并设置 ENABLE BITCODE = NO。我猜这可能也适用于其他情况

        【讨论】:

        • 在 Unity 编辑器中将编译器标志添加到 .m 文件后,我在构建 Unity 项目时也遇到了这个问题。我最终注意到 Unity 编辑器中的消息说: > “一旦从脚本加载了原生插件,它就永远不会卸载。如果取消选择原生插件并且它已经加载,请重新启动 Unity。”看完这篇,我重启了Unity并重建了项目,链接器错误消失了。
        【解决方案9】:

        遇到类似问题,在模拟器上运行代码时,尝试了上述所有选项,仍然得到相同的错误。尝试连接 iOS 设备并构建代码,它对我们有用。这可能是一个快速的解决方法。

        【讨论】:

          【解决方案10】:

          我遇到了同样的错误。所以,我只是删除了那些产生错误的类的引用,然后再次给出引用,错误就消失了......

          正如D80Buckeye所说的应该是拖放文件而不是点击“添加文件”的问题

          【讨论】:

          • 这并不能真正回答问题。如果您有其他问题,可以点击 提问。一旦你有足够的reputation,你也可以add a bounty引起更多的关注。
          • @Pinal,我在 Xcode 6.0.1 上尝试了同样的问题。有了这个技巧,问题就解决了,我分享了我的经验。所以这真的不是那个问题的答案。
          【解决方案11】:

          万一这对其他人有用——我也遇到了同样的错误,结果发现原因是在我的头文件而不是主文件中初始化了一个变量。

          【讨论】:

            【解决方案12】:

            我刚刚遇到了同样的错误。如果您使用嵌入式库,请确保您的 Deployment Target 设置为 iOS 8.0 或更高版本。

            【讨论】:

              【解决方案13】:

              你只需要添加以下框架:quartzcore.framework

              【讨论】:

                【解决方案14】:

                在我们的项目中克服这个错误的唯一方法是进行清理,然后为 iPad Retina 构建。之后,它将为任何设备成功构建。很奇怪。

                【讨论】:

                  【解决方案15】:

                  在我的情况下,我添加了 FacebookLoginSDK 框架的参考,但忘记在构建设置中提供搜索路径。删除它的引用后一切都很好。

                  所以结论是,如果您要添加任何外部框架,请小心。

                  【讨论】:

                    【解决方案16】:

                    如果 CoreData 生成的类发生这种情况,请将 +CoreDataProperties 和 +CoreDataClass 组合到 +CoreDataProperties 类中并删除 +CoreDataClass。确保在派生数据中搜索 +CoreDataClass 的剩余部分。即使在删除派生数据并清理之后,我有时也会让 Xcode 一次又一次地生成 +CoreDataClass。在 Finder 中手动删除然后重新生成帮助我解决了这个问题。

                    【讨论】:

                      【解决方案17】:

                      试试这个,去Target -> Build Settings,然后搜索这三个如下,

                      GCC_NO_COMMON_BLOCKS,

                      CLANG_WARN_INFINITE_RECURSION,

                      CLANG_WARN_SUSPICIOUS_MOVE,

                      将 NO 设置为每个值,然后清理并构建。

                      【讨论】:

                        【解决方案18】:

                        我尝试了列出的几个答案,但没有一个对我有用。 更新 XCode 后出现错误(虽然它仍处于打开状态,这可能导致了问题)

                        首先,我删除了我的 Derived Data 文件夹: XCode => Preferences => Locations => 双击路径旁边的箭头,指示 Derived Data 文件夹的位置。 然后“移至垃圾箱” 我不认为这就是问题所在,但令人惊讶的是,有多少次这对我处理不同的问题来说是个问题。

                        第二,我“退出”模拟器。

                        第三,我“退出”XCode。

                        第四,我再次在 XCode 中打开了我的项目,然后进行了清理和构建(在产品菜单中找到)

                        第五,我运行了我的项目,它运行良好

                        【讨论】:

                          【解决方案19】:

                          清理项目对我不起作用。 重新启动 Xcode 对我有用...

                          【讨论】:

                            【解决方案20】:

                            对我来说是不同的。当我删除一个 Pod 并通过从 Build Settings

                            中的 Other Linker Flags 中删除这个 pod 来解决它时,我遇到了同样的错误

                            然后清理您的项目 [Product > Clean] 并重建

                            【讨论】:

                              【解决方案21】:

                              转到 xcode 中的通用和链接框架和库,并删除那里的所有文件。

                              【讨论】:

                                猜你喜欢
                                • 2014-02-15
                                • 2018-06-12
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 2015-01-11
                                • 1970-01-01
                                相关资源
                                最近更新 更多