ld:找不到-lstdc ++的库.6

vks*_*vks 25 macos xcode ios xcode10

将Xcode版本更新到10.0 beta后,开始获取"ld:找不到-lstdc ++.6的库"错误.相同的代码在Xcode 9.2中正常工作

还将macOS更新为10.13.5

小智 13

快速解决方案是将旧Xcode(9.4)中的所有libstdc ++.*文件复制到新的Xcode(10.x)

对于设备:

cp /Applications/Xcode9.4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libstdc++.*/Applications/Xcode10.app/Contents/Developer/Platforms/iPhoneOS.平台/开发商/软件开发工具包/ iPhoneOS.sdk/usr/lib目录/

对于模拟器:

cp /Applications/Xcode9.4.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libstdc++.*/Applications/Xcode10.app/Contents/Developer/Platforms/iPhoneSimulator.平台/开发商/软件开发工具包/ iPhoneSimulator.sdk/usr/lib目录/


Lar*_*rme 12

定位iOS应用时,您会遇到此问题.它在发行说明中说明:

弃用通知:

使用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)

来源:XCode Beta 2发行说明

附注:
您需要登录才能访问该页面.
链接可能会在下一个测试版中中断(URL更改),但它位于开发人员/下载部分

XCode 10正式发布其发行说明,它仍然如此:

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


小智 6

如上所述,lstdc ++已从Xcode 10中删除.要解决此问题,

  1. 转到目标 - > BuildPhases - >使用库链接二进制文件

  2. 搜索lstdc ++并将其删除.

  3. 现在,您可能会在使用上述"lstdc ++"库的某个框架中出错.现在,您必须更新这些框架或将其删除,以便Xcode可以成功构建它.


ir2*_*pid 5

  1. 如果您使用外部 Makefile 来构建 C++ 库,请添加

CXXFLAGS += -stdlib=libc++ 您的外部库 Makefile 和已删除的实例 -stdlib=stdlibc++

  1. 如果没有,请忽略上面的步骤,只需转到 Project>Target>Link Binary with libraries>
    • 删除 (-) libstdc++.6.0.9.tbd
    • 添加 (+) libc++.tbd