更新 Xcode 10 编译遇到的问题
用Xcode 10 编译老旧项目遇到的两个问题如下:
一、WebSocket / libfishhook.a 链接文件未找到
libfishhook.a 文件未找到error:Build input file cannot be found:‘/Users/.../Libraries/WebSocket/libfishhook.a’
通常编译报 Build input file cannot be found错误,说明该文件存放位置有问题,只需要移除之后,重新添加一下文件就可以编译通过。如下:
libfishhook.a 文件位置二、library not found for -lstdc++.6.0.9 库未找到
ld: library not found for -lstdc++.6.0.9
clang: error :linker command failed with exit code 1 (use -v to see invocation)
1、Xcode 10 中移除了 “-libstdc++.6.0.9” 库,需要在旧版Xcode 9 中查找到“-lstdc++.6.0.9”库之后,复制一份放入Xcode 10 lib库中。
苹果官方文档可以在我的 GitHub下载缺失的库文件,也可以在旧版Xcode 9 中查找,路径如下:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
使用快捷键打开:command + shift + G 前往文件夹
前往文件夹 shift+command+G2、找到这两个文件,复制到Xcode 10 lib库文件相同的位置,
lib库中的两个文件3、如果用真机和者模拟器编译运行,请在iPhoneOS.platform(真机)和iPhoneSimulator.platform(模拟器)两个文件下的lib文件夹分别添加libstdc++6.0.9tbd和libstdc++.6.tbd两个文件。
添加libstdc++ 文件4、清除一下(shift+command+K)缓存,重新编译(command + B)一下即可。