Xcode 如何使用libc++;和libstdc++;用于一个项目中的不同库
在这里输入链接描述目前我正在致力于在iOS项目中嵌入unity,我几乎完成了它。但是,我的库有问题 我在我的iOS项目中嵌入Unity + VuFuia,这意味着在构建C++标准库时,我必须使用LBC+++来获得VuFuia和Unity工作。 另一方面,我有一些旧库(libFMDB.a;lingos.a;libproj4.a;libShapekit.a;libSpatialDBKit.a;libspatialite.a;libsqlite3.a),它们应该在设置中使用libstdc++。如果我只是将libc++设置为我的构建设置,我将得到错误。 在这一点上,我应该怎么做才能使一切都符合要求Xcode 如何使用libc++;和libstdc++;用于一个项目中的不同库,xcode,unity3d,vuforia,Xcode,Unity3d,Vuforia,在这里输入链接描述目前我正在致力于在iOS项目中嵌入unity,我几乎完成了它。但是,我的库有问题 我在我的iOS项目中嵌入Unity + VuFuia,这意味着在构建C++标准库时,我必须使用LBC+++来获得VuFuia和Unity工作。 另一方面,我有一些旧库(libFMDB.a;lingos.a;libproj4.a;libShapekit.a;libSpatialDBKit.a;libspatialite.a;libsqlite3.a),它们应该在设置中使用libstdc++。如果我只
谢谢 不要这样做强> 为什么?
libc++
将具有与libstdc++
相同的符号类
结构将不兼容。内部类结构将以不同的方式实现或布局libstdc++
在iOS 12上不再可用。您的程序将不会在其上运行为什么不能直接使用
libc++
?问题出在哪里还不清楚。此外,您应该知道,最新的SDK甚至不提供libstdc++,因此您无法在现代系统上运行所需的功能。@BradAllred我很抱歉我的描述不清楚。我不能使用libc++,因为lingos.a和其他一些库必须使用libstdc++。如果我将C++标准库设置为LBC+++,它将具有一致性错误:体系结构ARM64的未定义符号:“STD::Trace:+(char const *)”,引用于:GeOs::LoopTys::ListGOS: ToString(o)GeOS::GeoMetrix::DigeDeDeTestAr::PrdTe():LIGBEOS.(directedgestar-8A1632E441A524A8.o)libgeos.a(EdgeEndBundle.o)中的geos::operation::relate::EdgeEndBundle::print()使用libc++
重新编译这些库!这与libc++
与libstdc++
无关,它们都是等价的(从API的角度看)C++标准库的一致实现:BTW<代码> LBQLITE3是IOS SDK的一部分,因此您可以只使用提供的而不是自己的。