苹果Mach-O链接器错误,我不知道该怎么办
我无法编译我的项目的设备或模拟器了。 我得到了13个苹果Mach-O-Linker错误。 这一切都是在我尝试使用sharekit失败之后开始的。 这是来自错误的日志:
ld: warning: directory not found for option '-F/Users/bbrandy95/Documents/Broken Brandsonic Web Projects/Brandsonic Web mobile/../../Downloads/0.2.1gm1/iphoneos4.0/System/Library/Frameworks' Undefined symbols for architecture armv7: "_OBJC_CLASS_$_NSURLRequest", referenced from: objc-class-ref in Brandsonic_Web_mobileAppDelegate.o objc-class-ref in Brandsonic_Web_mobileViewController.o "_OBJC_CLASS_$_NSAutoreleasePool", referenced from: objc-class-ref in main.o "_objc_msgSendSuper2", referenced from: -[Brandsonic_Web_mobileAppDelegate dealloc] in Brandsonic_Web_mobileAppDelegate.o -[Brandsonic_Web_mobileViewController didReceiveMemoryWarning] in Brandsonic_Web_mobileViewController.o -[Brandsonic_Web_mobileViewController dealloc] in Brandsonic_Web_mobileViewController.o "_objc_setProperty", referenced from: -[Brandsonic_Web_mobileAppDelegate setWindow:] in Brandsonic_Web_mobileAppDelegate.o -[Brandsonic_Web_mobileAppDelegate setViewController:] in Brandsonic_Web_mobileAppDelegate.o "__objc_empty_vtable", referenced from: _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o _OBJC_CLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o _OBJC_METACLASS_$_SecondView in SecondView.o _OBJC_CLASS_$_SecondView in SecondView.o "_objc_msgSend", referenced from: _main in main.o -[Brandsonic_Web_mobileAppDelegate application:didFinishLaunchingWithOptions:] in Brandsonic_Web_mobileAppDelegate.o -[Brandsonic_Web_mobileAppDelegate dealloc] in Brandsonic_Web_mobileAppDelegate.o -[Brandsonic_Web_mobileAppDelegate GOOGLE] in Brandsonic_Web_mobileAppDelegate.o -[Brandsonic_Web_mobileAppDelegate YOUTUBE] in Brandsonic_Web_mobileAppDelegate.o -[Brandsonic_Web_mobileAppDelegate WIKI] in Brandsonic_Web_mobileAppDelegate.o -[Brandsonic_Web_mobileViewController webView:shouldStartLoadWithRequest:navigationType:] in Brandsonic_Web_mobileViewController.o ... "__objc_empty_cache", referenced from: _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o _OBJC_CLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o _OBJC_METACLASS_$_SecondView in SecondView.o _OBJC_CLASS_$_SecondView in SecondView.o "_OBJC_CLASS_$_NSObject", referenced from: _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o "___CFConstantStringClassReference", referenced from: CFString in Brandsonic_Web_mobileAppDelegate.o CFString in Brandsonic_Web_mobileAppDelegate.o CFString in Brandsonic_Web_mobileAppDelegate.o CFString in Brandsonic_Web_mobileViewController.o CFString in Brandsonic_Web_mobileViewController.o CFString in Brandsonic_Web_mobileViewController.o CFString in Brandsonic_Web_mobileViewController.o ... "_OBJC_CLASS_$_NSKeyedUnarchiver", referenced from: objc-class-ref in Brandsonic_Web_mobileViewController.o "_OBJC_CLASS_$_NSUserDefaults", referenced from: objc-class-ref in Brandsonic_Web_mobileViewController.o "_OBJC_CLASS_$_NSURL", referenced from: objc-class-ref in Brandsonic_Web_mobileAppDelegate.o objc-class-ref in Brandsonic_Web_mobileViewController.o "_OBJC_METACLASS_$_NSObject", referenced from: _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o _OBJC_METACLASS_$_SecondView in SecondView.o ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation) '
我该如何解决? 请帮忙。
对于每一个有类似的错误。 如果发生这种情况,通常可以删除点下的“path”
目标 – >生成设置 – >库searchpath
当一个框架被添加到一个项目不止一次时,会发生这个错误。
- 你可以通过删除重复来解决这个问题。 要find它,请在Xcode项目导航器中select框架,然后select在Finder中显示 。 然后清理并build立你的项目。
如果您遗失了框架头文件或对它们的引用,也可能导致这种情况。
- 在这种情况下,您应该尝试删除SDK或框架并重新添加。
祝你好运。
如果使用CocoaPods安装了依赖项,请确保通过单击.xcworkspace
文件而不是 .xcodeproj
文件来打开XCode项目。
好像项目文件可能已经被破坏了。
解决这个问题的最可靠的方法是创build一个新的项目,并将文件和旧的info.plist移到顶部。
解决这个问题的下一个最可能的方法是在当前项目中创build一个新的目标,看看是否会编译(如果你有旧的目标的特殊标志,你会想复制它们)。
你也可以尝试编译Release和Build,如果其中的一个工作看所有的编译器选项,看看有什么不同。
如果你为Sharekit添加了一个头部searchpath,可能试着清除整个头部searchpath,看看是否能解决问题。 还要确保你的项目还包括一个全新的项目包含的框架(UIKit和NSFoundation,可能还有其他的)。
添加.m文件以编译源页面。
脚步:-
- 点击他在导航菜单中的项目
- select目标
- select构build阶段
- select+button并在编译源中添加文件。
希望能帮助任何人解决这个问题
问题是你的道路上的空间:
xcode使用下面的链接器开关:
-F/Users/bbrandy95/Documents/Broken Brandsonic Web Projects/Brandsonic Web mobile/../../Downloads/0.2.1gm1/iphoneos4.0/System/Library/Frameworks
而且由于没有引用它不会起作用。 (它正在寻找文件夹"/Users/bbrandy95/Documents/Broken"
您应该重命名目录,或者查看项目设置并将引号添加到目录中。 (但这可能是棘手的发现)
我也有同样的问题45种相同types的错误,当我添加到我的项目libxml2.dylib错误消失。
在某些情况下,您的库searchpath是空的。因为有许多Apple-mac-o链接器错误。
也见我的回答。
在OCUnit中使用Core Data类的Apple Mach-O链接程序错误
我有这个问题,现在为我的情况select一个更新的iOS版本,因为部署目标纠正了我这个。 我的项目被设置为默认情况下部署到iOS 5,并将其更改为7(最近)做了诀窍。
对于任何刚开始iOS开发的人,都可以通过在导航器>部署信息>部署目标中单击您的XCode项目文件并从下拉菜单中select适当的版本来完成。
我怀疑这会解决其他人遇到的一些问题,但是可能会有几个人和我在同一条船上。
这是因为该项目在编译源中插入了核心数据的xcdatamodeld文件。 select你的项目 – > Build Phase – > Compile Sources并删除projectName.xcdatamodeld文件。 还要检查你是否导入了.m
文件而不是.h
文件,它也给出了相同的链接器错误。 检查所有#import代码。 并检查是否在库中添加了核心数据框工作,并检查了导入的核心数据.h
文件。 检查NSManagedObject
创build并导入它的文件。 只要尝试并回复我,如果还有任何错误。
我有同样的问题,
我只是简单地将Build Option – > Enable Bitcode
为NO
我用自己开发的椰子树面对这个问题。
错误是:苹果Mach-O链接器错误
事实certificate,我已经定义了一个协议,并实现了一个协议扩展。 协议扩展的一种方法是公开的,但协议本身不是。 这导致苹果Mach-O链接器错误。
例:
协议MyProtocol {var field:String {get}}
extension MyProtocol { public func giveMeSomething() – > String}
公共类MyClass:MyProtocol {}
在描述中提到的错误MyClass引用从MyProtocol – > MyProtocol引用giveMeSomething()…
所以,解决办法是让Myprotocol也公开
希望能帮助别人。