Xcode 10 : 编译报错ld: library not found for xxxx

解决方案在最下方,

升级Xcode10之后编译报错问题修复:

  1. 原文: 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中已经被彻底移除

解决方案

  1. 临时解决方案(不建议使用,会出现后面的系统兼容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 文件,扔进去

  1. 完美解决方案:
    适配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/

相关链接

作者
作者

你可能感兴趣的:(Xcode 10 : 编译报错ld: library not found for xxxx)