c – Xcode4:“bad codegen,pointer diff”链接器再次出错

c – Xcode4:“bad codegen,pointer diff”链接器再次出错,第1张

概述这个问题与此有关: “bad codegen, pointer diff” linker error with Xcode 4和 “bad codegen, pointer diff in boost” error in 32-bit build和 XCode 3.2.6 and 4 linker errors ld:bad codegen, pointer diff in … to global 这个问题与此有关: “bad codegen,pointer diff” linker error with Xcode 4和 “bad codegen,pointer diff in boost” error in 32-bit build和 XCode 3.2.6 and 4 linker errors ld:bad codegen,pointer diff in … to global weak symbol

我目前正在将我的所有项目升级到Xcode4,并且我遇到了一些奇怪的问题.-如果我构建通用二进制文件或32位版本,则只会出现上述错误.如果我只坚持64位,事情就好了.我自己正在构建一个自定义静态库,现在我不在该代码中使用任何可见性设置(即属性((visibility(“default”)))).如果我链接该库并尝试构建项目,确切的错误是:

ld: bad codegen,pointer diff in Motor::Core::DefaultStoragePolicy::DefaultStoragePolicy(myWindowContent* const&)to global weak symbol Motor::Core::NullPointerException::~NullPointerException()for architecture i386

它位于我的SmartPtr类中,它可以抛出NullPointerException(只是从std :: exception派生).如果我明确地将NullPointerException类的可见性设置为隐藏,那么事情编译正常,但隐藏异常可能不是很好!我尝试了以下编译器:GCC 4.2,LLVM-GCC 4.2和LLVM 2.1都存在同样的问题.在项目/目标设置中将默认隐藏的符号设置为yes不起作用(也不是我想要的).那么如何在不隐藏异常的情况下解决这个问题(这是无稽之谈).我必须忍受它,它是一个错误吗?期待您的想法,谢谢!

解决方法 好的,我发现了错误,我在应用程序中将Inline Methods HIDden设置为yes,而在构建静态库时将其设置为no.因此,如果您遇到相同的问题,请确保将隐藏的内联方法设置为否.现在我的代码也可以使用默认设置的符号设置为否,这就是我想要的!

对我来说,为什么错误只出现在32位版本中仍然是个谜.

总结

以上是内存溢出为你收集整理的c – Xcode4:“bad codegen,pointer diff”链接器再次出错全部内容,希望文章能够帮你解决c – Xcode4:“bad codegen,pointer diff”链接器再次出错所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1019035.html

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

发表评论

登录后才能评论

评论列表(0条)

保存