【发布时间】:2009-10-23 14:19:11
【问题描述】:
所以当奇怪的错误从 XCode 中跳出来时,我仍然觉得自己像个新手。昨天我开始得到这个:
___gxx_personality_v0",引用自:___gxx_personality_v0$non_lazy_ptr
那是在构建单元测试目标时,该目标使用 XCode 中的 .mm 文件和 iPhoneSDK。当我将文件扩展名改回 .m 时,错误消失了,因为我还没有在其中使用 C++ 代码。 (虽然我打算这样做。)以我有限的知识,我用谷歌搜索并看到其他人表明正在使用错误的编译器。另一个链接提到了错误设置的标志。有了更有限的知识,我决定 UnitTest 目标中的链接器选项是可以去的地方。事实证明,标准 C++ 库类型设置默认设置为动态。将此设置更改为静态使我的错误消失,我的测试现在变成绿色条......错误......绿色按钮。我在这里问是因为我仍然不知道我在做什么。显然这个设置会影响编译器,但我需要更多细节。我是否正在为未来的另一场灾难做好准备。如果有的话,会有什么负面影响?为什么我以前没有遇到问题?我之前在单元测试中使用过 .mm 文件,尽管我相信我当时使用GoogleToolsForMac 代码库进行单元测试,而我现在使用原生 XCode 支持进行单元测试。谁能帮我解释一下?
【问题讨论】:
标签: iphone objective-c ios gcc linker