【问题标题】:Linking Error in XcodeXcode中的链接错误
【发布时间】:2010-02-18 10:42:21
【问题描述】:

添加 libxml2.2.dylib 文件后出现此错误

 Linking /Users/Biranchi/Desktop/Funmovies TabBarController/build/Debug-iphonesimulator/funmovies.app/funmovies (1 error)
 in /Developer/Platforms/iphoneOS.platform/Developer/SDKs/iphoneOS3.0.sdk/lib/libobjc.A.dylib, missing required architecture i386 in file

Command /XCode3.1.4/platforms/iphoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

这个错误是什么原因造成的??

感谢所有建议。

谢谢 比兰奇

【问题讨论】:

    标签: objective-c xcode linker


    【解决方案1】:

    确保使用正确的扩展名导入。

    当我错误地写了#import "AClass.m" 而不是#import "AClass.h" 时,我得到了错误:-)

    【讨论】:

    • 同样的问题,如果没有这个评论,我会花很长时间才能找到这个,谢谢!
    • 太棒了。我在.cpp 文件中编译了代码,并尝试使用.mm 文件中的函数,但它失败了。重命名 .cpp 文件是不够的。我实际上必须创建一个新的 .mm 文件,然后将旧 .cpp 中的代码剪切并粘贴到 .mm,以让它工作。
    【解决方案2】:

    我不得不删除这个库 libz.1.2.3.dylib 并添加这个 libz.1.2.5.dylib。之后它编译得很好。

    【讨论】:

    • 我遇到了同样的问题,这对它进行了排序。谢谢@mracoker。
    【解决方案3】:

    试用产品 -> 清洁。为我工作。

    【讨论】:

      【解决方案4】:

      确保您是否有外部类,它们已添加到编译源中。当我尝试导入某个类时,我遇到了同样的错误。要修复它,请转到构建阶段并将其添加到已编译的源代码中。

      【讨论】:

        【解决方案5】:

        得到了同样的错误,现在即使我已经从项目错误中删除了 libxml2 仍然在这里:) 这个 sh**y XCode 写了这个:

        LIBRARY_SEARCH_PATHS = (
        +                    "$(inherited)",
        +                    /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib,
        +                );
        

        在“MyProj.xcodeproj”中进入项目的配置文件“project.pbxproj”。

        您可以手动将此路径更改为:

        LIBRARY_SEARCH_PATHS = (
        +                    "$(inherited)",
        +                    /Developer/Platforms/iPhoneSimulatorOS.platform/Developer/SDKs/iPhoneSimulatorOS3.0.sdk/usr/lib,
        +                );
        

        但不要忘记在编译到设备时将其改回。 我会尝试找到更简单的方法来解决这个问题。

        【讨论】:

          【解决方案6】:

          我在构建项目时遇到了类似的问题,但这次使用的是 timbreID.c 文件

          arm-apple-darwin10-gcc-4.2.1: timbreID.c: No such file or directory
          Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
          

          经过几次尝试,我终于在我的 XCode 项目中查看了“目标”,并意识到文件 timbreID.c 是红色的(= 未找到)。我右键单击它并手动选择了新路径。

          之后:构建成功!!

          【讨论】:

          • 我也通过纠正不正确的目标解决了类似的错误。
          【解决方案7】:

          只需删除 libz1.2.3 并将 libz1.2.5 库添加到您的构建阶段。

          【讨论】:

            【解决方案8】:

            我遇到了同样的问题,我继续检查目标信息

            在图书馆搜索路径中有这个条目, "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/usr/lib"

            我删除了它并且应用程序工作了!!!

            【讨论】:

              【解决方案9】:

              如果这是与特定框架相关的问题,请确保在构建阶段启用它。对我来说,我必须添加 MessageUI.framework:在 Xcode 4 中,转到目标的构建阶段选项卡。确保您看到您正在使用的框架。如果不存在,请单击 + 添加。

              【讨论】:

                【解决方案10】:

                尝试从命令行发出失败的命令。在那里,您将看到未通过 GUI 显示的 stderr 输出。

                【讨论】:

                • 我们应该如何从命令行发出失败的命令?
                【解决方案11】:

                即使导航窗格中的文件都不是红色的,我也遇到了同样的错误。原来我重构一个类的名称会抛出 xcode 路径位置。对我有用的解决方案是一次选择一个 .h 和 .m 文件,将位置设置为“绝对路径”(在右侧菜单,最左侧的选项卡中),然后浏览到它在文件系统中的位置。

                【讨论】:

                  【解决方案12】:

                  添加到 Graham Heath 的答案 - 我认为应该在线程中更加突出。

                  检查缺少的框架是最快捷、最容易尝试的修复方法。完全无损,可能是大多数人出现此类错误的原因。只需浏览框架列表,寻找看起来合适的东西并尝试一下。我认为很多人都被愚弄了,因为 XCode 在您编写代码时不会标记一个类的问题 - 只是在您链接它时。

                  我的错误是:“链接器命令失败,退出代码 1(使用 -v 来查看调用)”涉及 CoreLocation 中的几个错误:

                  “架构 armv7 的未定义符号: “_OBJC_CLASS_$_CLLocationManager”,引用自: NPTViewController.o 中的 objc-class-ref"

                  我添加了 CoreLocation.framework,工作就完成了。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2015-06-29
                    • 2010-11-25
                    • 2011-04-10
                    • 2013-11-10
                    • 2015-05-29
                    • 1970-01-01
                    相关资源
                    最近更新 更多