在iOS 设备和iOS模拟器上运行的.a应该是我的.a架构



我用各种lib.a的架构"arm64"、"armv7"和"x86"构建了一个胖库。当我为 iOS 设备编译项目时,我没有问题,但是当我尝试将其放入 iOS 模拟器时,编译似乎出错了。它说"x86_64的未定义符号"。我可以想象我也需要x86_64 lib.a但我想知道我能做些什么来解决这个问题。

注意: 从OpenHome手动编译的库

比你

编辑: 可能是因为此处的制作文件

第一步,确保您的胖垃圾箱是否肯定包含x86_64。 为此,您可以按如下方式检查 w/cmd。

$ xcrun lipo -info yourLibrary.a

如果你的库肯定包含x86_64,它应该显示

Architectures in the fat file: yourLibrary.a are: x86_64 arm64 ...

例如,我已经为x86_64编译了libpng,为我的应用程序编译了arm64。xcrun 命令如下所示。

$ xcrun lipo -info libpng.a
Architectures in the fat file: libpng.a are: x86_64 arm64 

不用说,胖子箱同时有arm64和x86(因为它是FAT(。所以胖垃圾桶不需要单独的x86_64 lib.a,正如你在 q 中提到的。

检查您的 Makefile 是在您确认您的胖垃圾箱已x86_64之后。

最新更新