【问题标题】:XCode 4.5, Static Libraries, and CategoriesXCode 4.5、静态库和类别
【发布时间】:2012-11-05 14:49:25
【问题描述】:

我正在尝试使用静态库,但其中的类别在运行时并未使用。没有编译时错误,但是当我开始运行时,我收到标准的“无法识别的选择器发送到实例”消息并且我的应用程序崩溃了。

许多解决方案说将-ObjC -all_load 添加到应用程序目标中的“其他链接器标志”属性中(许多其他人说从 XCode 4 开始不再需要,这是我费心包含的唯一原因XCode 版本)。我已经尝试过了,在构建过程中出现 115 个错误:

Undefined symbols for architecture i386: "_CLLocationCoordinate2DMake", referenced from: -[QMapElement init] in libQuickDialog.a(QMapElement.o) "_OBJC_CLASS_$_MKMapView", referenced from: objc-class-ref in libQuickDialog.a(QMapViewController.o) "_OBJC_CLASS_$_MKPinAnnotationView", referenced from: objc-class-ref in libQuickDialog.a(QMapViewController.o) "std::istream::gcount() const", referenced from: GT::AES::decode(std::istream&, std::ostream&, unsigned int&, bool) in GD(gtaes.o) GT::AES::encode(std::istream&, std::ostream&, unsigned int&, bool) in GD(gtaes.o) "std::string::find_first_of(char const*, unsigned long, unsigned long) const", referenced from: -[GDSetPasswordViewController checkPasswordStrength:] in GD(GDSetPasswordViewController.o) GD::EacpCReq::EacpCReq(std::string, std::string, GT::Dbb&) in GD(GDEacpCommands.o) GD::RawSocket::connect() in GD(GDRawSocket.o) "std::string::copy(char*, unsigned long, unsigned long) const", referenced from: GD::Socket::toString() const in GD(GDSocket.o)

(依此类推,大约是 115 个中的 5 个或 6 个)。

无论我有这些链接器标志中的任何一个,还是两者都有,我都会得到完全相同的错误集。

不确定这是罪魁祸首,还是只是巧合,但在仔细查看错误之后,似乎它们都来自我正在使用的两个第三方库之一。一个作为已安装的 .framework,另一个作为常规静态库。也许我也需要对他们的构建做点什么(如果可能的话)? 谢谢!

【问题讨论】:

标签: objective-c ios xcode


【解决方案1】:

在我看来,错误消息指向了一些缺少的框架:

  1. CoreLocation(_CLLocationCoordinate2DMake 符号);

  2. MapKit(_OBJC_CLASS_$_MKPinAnnotationView 符号);

  3. C++ 标准库。

尝试将它们包含在您的目标中...特别是对于 C++ 标准库,您应该检查 Xcode 中“Apple LLVM 编译器 x.y - 语言”下的特定构建设置。

这不排除其他框架缺失的可能性,当然……

【讨论】:

  • 这让我开始了,实际上,下降到 112。现在要弄清楚这些东西在哪些其他框架中。感谢您为我指明正确的方向。
  • 是的,只需要三个 libstdc++ 库之一。每个都让我犯了 0 个错误,只需要从我的第 3 方框架提供商那里弄清楚我使用哪一个是否重要。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-10
  • 2018-01-23
  • 2011-08-08
  • 2012-10-08
  • 1970-01-01
  • 2011-02-03
相关资源
最近更新 更多