Xcode 10(iOS 12)不包含libstdc ++ 6.0.9

Cod*_*eal 45 ios ios12 xcode10

我从Apple下载了最新的Xcode,但我发现我无法搜索名为"libstdc ++ 6.0.9"的库. 无法搜索libstdc ++

Jer*_*oia 41

libstdc ++在5年前被弃用了.Apple最新的平台(tvOS和watchOS)不支持它.

支持已从iOS 12.0 Simulator运行时中删除,但它仍保留在iOS 12.0(设备)运行时中,以便与运送应用程序二进制兼容.

您应该通过将CLANG_CXX_LIBRARY构建设置("C++标准库")设置为libc ++来更新项目以使用libc ++而不是libstdc ++.

如果您有任何依赖于libstdc ++.tbd的静态库,您现在可以通过从Xcode 9.4中的SDK(以及iOS模拟器运行时中的libstdc ++.*.dylib)复制文件来解决它,但这不是一个长期的解.您应该联系这些库的提供者并请求使用libc ++构建的版本.


小智 21

您可以从旧Xcode(9.4)复制它.它应该工作.

cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/

cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
Run Code Online (Sandbox Code Playgroud)


Osc*_*and 17

libstdc++ 已在iOS 12中删除.

我希望在Twitter上有一个比苹果工程师更好的来源,但这就是我的全部.

@jeremyhu PSA:libstdc ++已经从iOS 12.0 SDK中消失了(它存在于运行时,用于二进制兼容性).它的日期也在macOS上编号.迁移到libc ++,如果你还没有.#WWDC2018 #cplusplus

编辑:这是一个更好的来源,Xcode 10补丁说明

使用libstdc ++构建时不推荐使用Xcode 8,并且在针对iOS时Xcode 10不支持.C++项目现在必须迁移到libc ++,并建议设置iOS 7或更高版本的部署目标.除了更改C++标准库构建设置外,开发人员还应审核硬编码链接器标志和目标依赖项,以删除对libstdc ++的引用(包括-lstdc ++, - lddc ++.6.0.9,libstdc ++.6.0.9.tbd和libstdc ++.6.0. 9.dylib).还需要针对libc ++重建项目依赖项,例如针对libstdc ++构建的静态归档.(40885260)


刘俊利*_*刘俊利 12

Xcode 10取消了内置lib的libstdc ++库,因此我们应该手动将文件复制到lib.

将文件:(libstdc ++.6.0.9.tbd)和(libstdc ++.6.tbd)复制到:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
Run Code Online (Sandbox Code Playgroud)

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib 
Run Code Online (Sandbox Code Playgroud)

(请注意区别"iPhoneOS"和"iPhoneSimulator")

清理xcode并重建它.

是文件.

  • 我从此回复提供的github位置下载了库,但我收到关于库“对于ARM体系结构而言太小”的错误,因此我直接从Apple开发人员门户网站下载了XCode 9.4,将其解压缩并手动复制了库,工作完美。谢谢! (2认同)

Cœu*_*œur 9

取自Xcode 10 Beta 2发行说明,适用于Xcode的所有未来版本:

使用libstdc ++构建时不推荐使用Xcode 8,并且在针对iOS时Xcode 10不支持.C++项目现在必须迁移到libc ++,并建议设置iOS 7或更高版本的部署目标.除了更改C++标准库构建设置外,开发人员还应审核硬编码链接器标志和目标依赖项,以删除对libstdc ++的引用(包括-lstdc ++, - lddc ++.6.0.9,libstdc ++.6.0.9.tbd和libstdc ++.6.0. 9.dylib).还需要针对libc ++重建项目依赖项,例如针对libstdc ++构建的静态归档.(40885260)

Apple不太可能再次支持libstdc ++.

  • 这个答案帮助我修复了我的构建.我擦除了"libstdc ++",在项目顶部的搜索或过滤器栏中搜索它,并在Xcode中搜索目标窗口.我在Target的"使用库链接二进制文件"下的"构建阶段"选项卡中找到了对它的引用.我通过按列表中的减号按钮删除了libstdc ++ 6.0.tbd. (2认同)

Tah*_*sha 5

更新到xcode 10后,我也遇到了同样的问题。我已经通过从https://github.com/Kila2/libstdc-.6.0下载libstdc ++。6.0.9.tbd和libstdc ++。6.tbd解决了此问题。 9.tbd

然后我将这些文件复制到我的项目文件夹中。之后,我按照以下步骤在链接框架和库中添加了这些库:项目>目标>常规>链接框架和库,单击(+)>单击“添加其他”>导航到“打开文件”中的项目文件夹,然后选择这些库并添加。

现在运行项目,它将完美运行。