xcode 链接器找不到_objc_msgSend和许多其他符号

pu3pd22g  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(981)

所以,我在Xcode上遇到了两个问题。我是iPhone应用程序开发的新手,所以任何帮助都会很有用。我正在创建一个带有mapView的应用程序,所以首先我做了所有应该做的事情。声明,视图加载,委托等等。之后我将属性连接到Map视图,结果出现了28个错误。在模拟器上,它工作正常,包括Map,但是在手机上它总是坏掉。在那之后我删除了所有Map视图的代码,它保持不变。
一些想法这可能是什么?如何使一个Map视图的iPhone?

"_OBJC_CLASS_$_NSBundle", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_NSFileManager", referenced from:
      objc-class-ref in AppDelegate.o
  "_objc_msgSendSuper2", referenced from:
      -[AppDelegate dealloc] in AppDelegate.o
      -[MainViewController didReceiveMemoryWarning] in MainViewController.o
      -[MainViewController viewDidLoad] in MainViewController.o
      -[MainViewController viewDidUnload] in MainViewController.o
      -[MainViewController viewWillAppear:] in MainViewController.o
      -[MainViewController viewDidAppear:] in MainViewController.o
      -[MainViewController viewWillDisappear:] in MainViewController.o
      ...
  "_objc_setProperty", referenced from:
      -[AppDelegate setWindow:] in AppDelegate.o
      -[MainViewController setManagedObjectContext:] in MainViewController.o
      -[MainViewController setOdaberiTaxi:] in MainViewController.o
      -[MainViewController setIzbornik:] in MainViewController.o
      -[MainViewController setTaxiPicker:] in MainViewController.o
      -[MainViewController setListaTaxiZG:] in MainViewController.o
      -[MainViewController setToolbar:] in MainViewController.o
      ...
  "__objc_empty_vtable", referenced from:
      _OBJC_CLASS_$_AppDelegate in AppDelegate.o
      _OBJC_METACLASS_$_AppDelegate in AppDelegate.o
      _OBJC_CLASS_$_MainViewController in MainViewController.o
      _OBJC_METACLASS_$_MainViewController in MainViewController.o
      _OBJC_CLASS_$_FlipsideViewController in FlipsideViewController.o
      _OBJC_METACLASS_$_FlipsideViewController in FlipsideViewController.o
  "_OBJC_CLASS_$_UIResponder", referenced from:
      _OBJC_CLASS_$_AppDelegate in AppDelegate.o
  "_objc_msgSend", referenced from:
      _main in main.o
      -[AppDelegate dealloc] in AppDelegate.o
      -[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o
      -[AppDelegate applicationWillTerminate:] in AppDelegate.o
      -[AppDelegate saveContext] in AppDelegate.o
      -[AppDelegate managedObjectContext] in AppDelegate.o
      -[AppDelegate managedObjectModel] in AppDelegate.o
      ...
  "_OBJC_CLASS_$_UIActionSheet", referenced from:
      objc-class-ref in MainViewController.o
  "_OBJC_CLASS_$_UIViewController", referenced from:
      _OBJC_CLASS_$_MainViewController in MainViewController.o
      _OBJC_CLASS_$_FlipsideViewController in FlipsideViewController.o
  "_objc_autoreleasePoolPop", referenced from:
      _main in main.o
  "__objc_empty_cache", referenced from:
      _OBJC_CLASS_$_AppDelegate in AppDelegate.o
      _OBJC_METACLASS_$_AppDelegate in AppDelegate.o
      _OBJC_CLASS_$_MainViewController in MainViewController.o
      _OBJC_METACLASS_$_MainViewController in MainViewController.o
      _OBJC_CLASS_$_FlipsideViewController in FlipsideViewController.o
      _OBJC_METACLASS_$_FlipsideViewController in FlipsideViewController.o
  "_UIApplicationMain", referenced from:
      _main in main.o
  "_OBJC_METACLASS_$_UIResponder", referenced from:
      _OBJC_METACLASS_$_AppDelegate in AppDelegate.o
  "_OBJC_CLASS_$_UIView", referenced from:
      objc-class-ref in MainViewController.o
  "_OBJC_CLASS_$_UIApplication", referenced from:
      objc-class-ref in MainViewController.o
  "_OBJC_CLASS_$_NSArray", referenced from:
      objc-class-ref in MainViewController.o
  "_OBJC_CLASS_$_NSManagedObjectContext", referenced from:
      objc-class-ref in AppDelegate.o
  "___CFConstantStringClassReference", referenced from:
      CFString in AppDelegate.o
      CFString in AppDelegate.o
      CFString in AppDelegate.o
      CFString in AppDelegate.o
      CFString in MainViewController.o
      CFString in MainViewController.o
      CFString in MainViewController.o
      ...
  "_OBJC_CLASS_$_UIAlertView", referenced from:
      objc-class-ref in MainViewController.o
  "_OBJC_METACLASS_$_UIViewController", referenced from:
      _OBJC_METACLASS_$_MainViewController in MainViewController.o
      _OBJC_METACLASS_$_FlipsideViewController in FlipsideViewController.o
  "_NSSQLiteStoreType", referenced from:
      -[AppDelegate persistentStoreCoordinator] in AppDelegate.o
  "_objc_autoreleasePoolPush", referenced from:
      _main in main.o
  "_NSStringFromClass", referenced from:
      _main in main.o
  "_NSLog", referenced from:
      -[AppDelegate saveContext] in AppDelegate.o
      -[AppDelegate persistentStoreCoordinator] in AppDelegate.o
  "_OBJC_CLASS_$_NSManagedObjectModel", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_NSURL", referenced from:
      objc-class-ref in MainViewController.o
  "_OBJC_METACLASS_$_NSObject", referenced from:
      _OBJC_METACLASS_$_AppDelegate in AppDelegate.o
      _OBJC_METACLASS_$_MainViewController in MainViewController.o
      _OBJC_METACLASS_$_FlipsideViewController in FlipsideViewController.o
  "_OBJC_CLASS_$_NSPersistentStoreCoordinator", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4nkexdtk

4nkexdtk1#

我遇到了一个类似的错误,这解决了我的问题:单击“目标”〉构建阶段〉将二进制文件与库链接〉单击“+”〉CoreData.framework。〉添加。

mspsb9vt

mspsb9vt2#

如果在2022年,您遇到了大量的Xcode链接器错误类型

Undefined symbols for architecture arm64: "_objc_msgSend$X"

其中X是所链接库的内部方法,那么你可能已经发现了Xcode 14的一个新特性,Objective-C msgsend选择器存根。这种优化将阻止通过Xcode 13和更早版本正确链接库。
如果需要将使用Xcode 14构建的静态库与早期版本的Xcode链接,则可以在编译期间通过将-fno-objc-msgsend-selector-stubs添加到编译器标志来禁用选择器存根生成。

uyhoqukh

uyhoqukh3#

您遗漏了像__objc_msgSend这样的符号,它们是Objective-C运行时的基础部分。这些符号在libobjc.dylib中找到,Xcode应该自动链接到任何Objective-C项目。此外,您缺少Foundation框架中的符号(例如_OBJC_CLASS_$_NSBundle)和UIKit(例如_OBJC_CLASS_$_UIView)。当您在Xcode中创建新的Objective-C项目时,这些框架会自动包含在内。
出现这些错误表明您的项目严重混乱。虽然Maven可能会解决您的问题,但您身边可能没有Maven。
因此,对您来说最简单的解决方案是在Xcode中创建一个新项目,然后将源文件复制到新项目中。在新项目中,请注意不要更改或删除构建设置,除非您了解它们的用途。很容易在没有意识到的情况下意外更改构建设置,并开始收到难以理解的错误消息。
如果这不能解决您的问题,则可能是Xcode安装已损坏,您可能必须重新安装Xcode。

相关问题