解决方案在最下方,
升级Xcode10之后编译报错问题修复:
- 原文: library not found for XXX
ld: library not found for -lstdc++.6
clang: error: linker command failed with exit code 1 (use -v to see invocation)
原因
-lstdc++.6 在Xcode10中已经被彻底移除
解决方案
- 临时解决方案(不建议使用,会出现后面的系统兼容bug):
我们从原来的Xcode9.x 下面将对应的库文件拷贝到Xcode10下面,重启Xcode即可(Xcode 10 Beta版可行,Xcode 10 正式版会有问题)
真机运行库
在终端输入以下命令打开Xcode的lib库目录(此目录为安装的默认目录)
open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
如果安装在其他目录 或者Xcode改名的建议右键Xcode显示包内容,进入
Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
把刚刚下载的zip文件解压
获取到的 真机的 libstdc++.6.0.9.tbd 文件,扔进去
模拟器运行库
在终端输入以下命令打开Xcode的lib库目录(此目录为安装的默认目录)
open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
如果安装在其他目录 或者Xcode改名的建议右键Xcode显示包内容,进入
Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
把刚刚下载的zip文件解压
获取到的 模拟器的 libstdc++.6.0.9.tbd 文件,扔进去
- 完美解决方案:
适配Xcode 10,本身项目去掉对应的相关库文件
1). 有第三方使用了该库的,联系第三方做适配并升级
2). 自己有使用的去除对应库(建议修改为libc++),做好维护升级即可。
最后一步
重启Xcode即可
如果重启Xcode 无效,运行报如下错误(因为您的系统版本无法兼容,此时需要重装系统才可以了),此时建议移除对应库:
dyld: Library not loaded: /usr/lib/libstdc++.6.dylib
Referenced from: /Users/haizel/Library/Developer/CoreSimulator/Devices/013F869E-06AF-4B64-B783-38F1A3DCB2A1/data/Containers/Bundle/Application/96071781-C8D9-4187-B8DB-0BD084C235BA/worldPorject.app/worldPorject
Reason: no suitable image found. Did find:
/usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator
终极解决方案(将以下四个对应目录的文件(建议3个stdc文件都复制)复制到Xcode10下面即可):
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
网友评论