1. Multiple commands produce
1 |
|
报错原因:重复
方案一
修改 Xcode 的配置暂时解决了编译报错的问题。
Xcode
-> File
-> Workspace settings
-> Build System
,选择 Legacy Build System
。
方案二
- 选择打开所在的项目
Target
->Build Phases
->Copy Bundle Resources
- 删除报错的那些文件
2. library not found for -lstdc++.6.0.9
Xcode10不支持libstdc++
系列的库了、需要删掉并且换成libc++
系列的库。有些第三方由于没有更新,会牵扯到这个库,所以运行后报错。
方案一
打开Build Phases
-> Link Binary With Libraries
,删除lstdc++.6.0.9
依赖
有可能还有删除
Build Setting
->Other Linker Flags
里的-l"stdc++.6.0.9"
但是现在部分第三方SDK依旧要依赖于lstdc++.6.0.9.tbd
动态库,如果对代码进行改动或者修改 Xcode 的配置,可能会造成其他问题,例如在Xcode9.4上再次运行的时候可能会出现报错等等。
方案二
最简单解决该问题的方法就是从 Xcode9.4 中找到动态库lstdc++.6.0.9.tbd
、libstdc++.6.tbd
、libstdc++.tbd
文件复制到 Xcode10 下就可以完美解决问题。
真机
1
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
模拟器
1
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
3. ld: symbol(s) not found for architecture x86_64
前面两个问题解决后,就遇到了这个问题,目前,在模拟器运行的时候会报这个错误,而使用真机运行的话没有问题,猜测应该是iOS12 模拟器的问题。
1 | ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.0.sdk/usr/lib/libstdc++.6.0.9.tbd, missing required architecture x86_64 in file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.0.sdk/usr/lib/libstdc++.6.0.9.tbd (3 slices) |