IOS7(仅)stdlibc ++链接问题
我需要帮助。 我有一个框架,使用stdc ++像std:string。 现在,当我为IOS7创build新应用程序时,由于stdc ++ lib的问题,链接此框架时出现问题:
架构armv7“std :: basic_string,std :: allocator> :: _ Rep :: _ S_empty_rep_storage”的未定义符号,引用自…
我发现奇怪的是,当我在这个应用程序中将Deplyment目标更改为ios6时,所有工作都正常。 用ios7我看到错误。
我已经在其他链接器标志中设置了标志:-lstdc ++
任何想法是什么阿米做错了?
只是对这个答案的更新:
这一步非常重要!
确保在Apple LLVM 5.0编译器构build设置中将C ++标准库设置为libstdc ++(GNU c ++标准库)
背景:
我有一个iOS应用程序突然停止build立与标准库链接错误的iOS 7。 我已经在模拟器和iPad mini上成功testing了应用程序,并将其归档,但是当我添加了iPhone 5S进行testing时,我开始发现链接错误(可能是因为新的架构在混合?)。
search谷歌上的链接错误,我发现build议明确地将libstdc ++。dylib添加到链接的库。 这没有奏效。
我尝试将libstdc ++。6.dylib添加到链接的库中。 这消除了链接错误,但应用程序很早就崩溃在标准C ++库代码中。
如上所述,删除了库的显式添加和更改“生成设置”中的编译器设置,纠正了链接错误和运行时问题。
感谢rimestad的指针!
说实话,我不喜欢上面的答案,因为它使用静态库而不是dynamic的!
我自己有这个问题,并发现问题是,Xcode无法find任何C ++文件在你的项目,因此假定不需要libstc ++!
当你连接到一个使用它的静态库时非常烦人!
解答:
- 添加一个空的.mm文件给你项目!
- 确保在生成设置中将C ++标准库设置为libstdc ++(GNU c ++标准库)
这工作对我来说,我不必将-lstdc ++添加到其他链接器标志 !
希望能帮助别人解决同样的问题。
谢谢你的帮助。 我find了解决办法。 我在其他链接器标志中使用了-lstdc ++标志,但现在还不够用。 我必须添加“libstdc ++。6.0.9.dylib在BuildPhases->链接二进制与库。在净信息中的某处xcode有ios7 stdc ++库select的问题,它应该手动select。
问候,马雷克
我有一个类似的问题,但@ MarekM的答案只解决了我的问题的一部分,所以我试图添加libstdc ++。dylib和libstdc ++。6.dylib,这使得所有的编译错误消失。