获得徽章 0
- 早上libstdc++被iOS12移除,导致很多有跨平台C++代码的项目无法在XCode10&iOS12上编译运行,苹果官方给出的方案是libstdc++已经被标记deprecated接近5年,建议都迁移到经过llvm优化过并且支持C++11的libc++这个库,但像我们用C++写了一整套跨平台引擎的项目,这种动静还挺大的,一时半会弄不完的,如何短时间内先把工程跑起来是个问题,今天折腾了半天算是搞定了。
因为新XCode10不包含libstdc++,那么从老的XCode里拷贝过去,记得要拷贝2个,一个simulator,一个device,可以用下面两个命令
cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
当2个库都拷贝过去后进行编译,你会发现编译都通过了,真机运行没问题(设备为iOS12),但用iOS12模拟器Run的时候,dylib加载期会报错,/usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator,感觉是iOS12模拟器的锅,重新换11.3的模拟器运行就没有问题展开评论6