objective-c – 未找到符号:_OBJC_CLASS _ $_文章

objective-c – 未找到符号:_OBJC_CLASS _ $_文章,第1张

概述我正在进行 Vienna的扩展,为第三方添加编写Objective-C插件的能力,但是只有在64位模式下运行时才会遇到一些运行时链接器问题(一切看起来在32位模式下工作正常) .我的插件,SynkPlugin,由Vienna.app中的以下代码加载: NSArray * bundlePaths = [NSBundle pathsForResourcesOfType:@"bundle" inDire 我正在进行 Vienna的扩展,为第三方添加编写Objective-C插件的能力,但是只有在64位模式下运行时才会遇到一些运行时链接器问题(一切看起来在32位模式下工作正常) .我的插件,synkPlugin,由VIEnna.app中的以下代码加载:

NSArray * bundlePaths = [NSBundle pathsForResourcesOfType:@"bundle" inDirectory:[[Preferences standardPreferences] pluginsFolder]];NSEnumerator * enumerator = [bundlePaths objectEnumerator];Nsstring * bundlePath;NSMutableArray * plugins = [NSMutableArray array];while ( (bundlePath = [enumerator nextObject]) != nil ){    NSBundle * pluginBundle = [NSBundle bundleWithPath:bundlePath];    Class principalClass = [pluginBundle principalClass];    ID <VIEnnaPlugin,NSObject> plugin = [[principalClass alloc] init];    [plugins addobject:plugin];    [plugin release];    NSLog(@"Loaded plugin %@ [main class: %@]",bundlePath,principalClass);}

在控制台输出中,我收到以下错误消息:

2010-07-09 08:55:40.128 VIEnna[74065:a0f] Error loading /Users/dcrosta/library/Application Support/VIEnna/PlugIns/synkPlugin.bundle/Contents/MacOS/synkPlugin: dlopen(/Users/dcrosta/library/Application Support/VIEnna/PlugIns/synkPlugin.bundle/Contents/MacOS/synkPlugin,265): Symbol not found: _OBJC_CLASS_$_Article  Referenced from: /Users/dcrosta/library/Application Support/VIEnna/PlugIns/synkPlugin.bundle/Contents/MacOS/synkPlugin  Expected in: flat namespace  in /Users/dcrosta/library/Application Support/VIEnna/PlugIns/synkPlugin.bundle/Contents/MacOS/synkPlugin

仅在64位模式下运行时才会发生此错误,而不是在32位模式下运行.维也纳和synkPlugin都使用“标准32/64通用”设置进行编译,synkPlugin还有额外的链接器标志“-undefined dynamic_lookup”,据我所知,它允许它链接到在VIEnna.app中找到的类而没有将这些类的代码编译成自己的二进制文件.

Stack Overflow上对此错误的其他引用与iPhone / iPod touch和iPad之间的UIKit差异有关 – 在这些情况下,框架实际上缺少iPhone / iPod touch上的类.就我而言,我确信VIEnna.app在其中的某个地方有Article类,因为它是由相同的代码构建到32位版本的.

以前有没有人看到这样的错误?有什么建议在哪里寻找更多信息?谢谢.

解决方法 在维也纳目标的构建设置中,根据GCC 4.2 – 代码生成取消选中默认隐藏的符号(GCC_SYMBolS_PRIVATE_EXTERN). 总结

以上是内存溢出为你收集整理的objective-c – 未找到符号:_OBJC_CLASS _ $_文章全部内容,希望文章能够帮你解决objective-c – 未找到符号:_OBJC_CLASS _ $_文章所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1071626.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存