gpt4 book ai didi

objective-c - XCode 4.5、静态库和类别

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:21 24 4
gpt4 key购买 nike

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

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

架构 i386 的 undefined symbol :
“_CLLocationCoordinate2DMake”,引用自:
-[QMapElement init] in libQuickDialog.a(QMapElement.o)
“_OBJC_CLASS_$_MKMapView”,引用自:
libQuickDialog.a(QMapViewController.o) 中的 objc-class-ref
“_OBJC_CLASS_$_MKPinAnnotationView”,引用自:
libQuickDialog.a(QMapViewController.o) 中的 objc-class-ref
“std::istream::gcount() const”,引用自:
GD(gtaes.o) 中的 GT::AES::decode(std::istream&, std::ostream&, unsigned int&, bool)
GD(gtaes.o) 中的 GT::AES::encode(std::istream&, std::ostream&, unsigned int&, bool)
“std::string::find_first_of(char const*, unsigned long, unsigned long) const”,引用自:
-[GDSetPasswordViewController checkPasswordStrength:] 在 GD(GDSetPasswordViewController.o)
GD::EacpCReq::EacpCReq(std::string, std::string, GT::Dbb&) 在 GD(GDEacpCommands.o) 中
GD::RawSocket::connect() 在 GD(GDRawSocket.o)
“std::string::copy(char*, unsigned long, unsigned long) const”,引用自:
GD::Socket::toString() const in GD(GDSocket.o)

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

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

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

最佳答案

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

  1. CoreLocation(_CLLocationCoordinate2DMake 符号);

  2. MapKit(_OBJC_CLASS_$_MKPinAnnotationView 符号);

  3. C++ 标准库。

尝试将它们包含在您的目标中...具体来说,对于 C++ 标准库,您应该检查 Xcode 中“Apple LLVM Compiler x.y - Language”下的特定build设置。

当然不排除其他框架缺失的可能...

关于objective-c - XCode 4.5、静态库和类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13234487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com