在Xcode中链接错误

时间:2010-02-18 10:42:22

标签: objective-c xcode linker

添加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

由于??

导致的错误是什么

所有建议都表示赞赏。

由于 Biranchi

12 个答案:

答案 0 :(得分:34)

确保使用正确的扩展程序导入。

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

答案 1 :(得分:8)

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

答案 2 :(得分:5)

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

答案 3 :(得分:3)

How to add as a compiled source

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

答案 4 :(得分:2)

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

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

进入“MyProj.xcodeproj”中的project`s配置文件“project.pbxproj”。

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

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

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

答案 5 :(得分:2)

我在构建项目时遇到了类似的问题,但这次是使用文件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项目中的'Targets'并意识到文件timbreID.c是红色的(=未找到)。我右键单击并手动选择新路径。

之后:构建成功!!

答案 6 :(得分:2)

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

答案 7 :(得分:1)

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

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

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

答案 8 :(得分:1)

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

答案 9 :(得分:0)

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

再加上Graham Heath的回答 - 我认为这个问题应该更加突出。

检查缺少的框架是尝试的最快和最简单的修复方法。完全没有破坏性,可能是大多数人犯这类错误的原因。只需浏览框架列表,看一下看起来合适的东西并尝试一下。我想很多人都被愚弄了,因为当你编写代码时,XCode没有标记类的问题 - 就在链接它时。

我的错误是:"链接器命令失败,退出代码为1(使用-v查看调用)"关于CoreLocation中的几个错误:

"架构armv7的未定义符号:   " _OBJC_CLASS _ $ _ CLLocationManager",引自:       NPTViewController.o中的objc-class-ref"

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