美文网首页iOS一些bug
iOS-Xcode暂时解决libstdc++问题

iOS-Xcode暂时解决libstdc++问题

作者: 卖萌笑嘻嘻 | 来源:发表于2019-04-12 10:07 被阅读0次

1.参考

适配Xcode10与iOS12之libstdc++问题
解决Xcode10 library not found for -lstdc++ 找不到问题
libstdc++适配Xcode10与iOS12(亲测有效)

2.实战

问题描述

手中的项目,在Mac系统升级或Xcode升级后,编译报错,报错信息为

Reason: no suitable image found. Did find:
/usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator

原因是XCode10 和 iOS12 中移除了 libstdc++ 这个库。如果项目依赖libstdc++,或者项目依赖的第三方库有依赖libstdc++。解决办法也很简单

如果是自己的项目有依赖libstdc++

在项目TARGETS-BulidPhases-Link Binary With Libraires中去掉libstdc++,添加上libc++即可

如果是项目依赖的第三方库有依赖libstdc++

需要更新第三方库版本即可。如果第三方的最新版本依旧依赖libstdc++,尽快反馈给第三方库的开发方。

但是还是会有别的原因不能去掉libstdc++

比如第三方库已经很久没有维护了,或者项目中使用的三方库版本比较老,贸贸然更新版本对项目影响比较大,时间又很紧,这里有一个暂时的解决办法。但是最终项目还是要更新依赖库的。

解决方案

在Xcode中添加stdc++.6.0.9文件

文件下载

下载Xcode10中删除的libstdc++库

添加文件

解压下载后的文件,cd到解压文件目录,直接编译install.sh,编译后重启Xcode即可。真机和模拟器均可正常运行

./install.sh

####文件下载
stdc++.6.0.9下载链接:https://pan.baidu.com/s/1s8-DJ1l6jtOTi9-nkiIPmQ 密码: avet
文件下载后解压,并解压模拟器目录和真机目录下的文件

####文件添加
#####模拟器添加
在终端输入
>open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib

打开Xcode的模拟器目录,将解压后模拟器目录下的libstdc++.6.0.9.tbd文件copy到Xcode的模拟器目录usr/lib下
#####真机添加
~~在终端输入
>open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib

打开Xcode的真机目录,将解压后真机目录下的libstdc++.6.0.9.tbd文件copy到Xcode的真机目录usr/lib下

重启Xcode,重新运行app即可
####注意
如果Xcode是12以上版本,注意还是不要使用模拟器运行app了,还是使用真机运行吧。我这里虽然这样处理了,模拟器运行还是会报这个错,真机运行还可以。

所以,有时间还是要更新项目中实际使用libstdc++的代码的。第三方库也是要更新的。

相关文章

  • iOS-Xcode暂时解决libstdc++问题

    1.参考 适配Xcode10与iOS12之libstdc++问题解决Xcode10 library not fou...

  • 自言自语——疯言疯语

    遇到问题,解决问题,短期解决的问题,长期解决的问题,眼前的问题,未来的问题,暂时可以解决的问题,暂时来看可以解决的...

  • 暂时解决Https问题

    因为ios要求要使用https协议,所以如果有些网站使用http协议可以用以下方法来解决在info.plist文件...

  • 第三方库引用了lstdc++.6.0.9

    解决方法 这个问题的原因是Xcode10把libstdc++换成了libc++,解决方法有2种,选择哪种都可以,能...

  • 长期视角

    #工作只是试图用暂时的办法来解决长期的问题。 这句话是在说暂时的办法,无法解决长期的问题。 工作,只是暂时的办法。...

  • 暂时解决动态菜单问题

    侧边栏菜单需要从服务端获取,思路是从登陆后获取菜单->存到localstorage->menu.js中从本地取出但...

  • /usr/lib/libstdc++.6.dylib: mach

    直接上解决办法: 从 Linked frameworks and libraries 中删除 libstdc++,...

  • 如何检测哪些三方库用了libstdc++

    (libstdc++库的使用只是一个示例,希望此方案能为大家解决其他问题带来思路) 一、背景 由于苹果废弃了lib...

  • libstdc++删除问题

    Xcode10中删除的libstdc++库 先下载下来这个项目,然后打开终端cd到libstdc--master文...

  • 阿里云出现:ERROR 2002 (HY000): Can

    问题: 原因:暂时未知 暂时解决方案:执行下面的命令来手动开启mysqld进程

网友评论

    本文标题:iOS-Xcode暂时解决libstdc++问题

    本文链接:https://www.haomeiwen.com/subject/lxxfwqtx.html