Undefined symbols for architectu

2022-08-03  本文已影响0人  吕建雄

在项目开发过程中,遇到Undefined symbols for architecture arm64 错误的概率还是比较高的,出现这样的错误,意味着项目某些地方不支持arm64指令集

解决问题之前,先了解清晰涉及到的知识点:

iOS支持的指令集包含:armv6、armv7、armv7s、arm64,在项目TARGETS---->Build Settings--->Architecturs 可以修改对应的指令集,目前Standard Architectures(arm64, armv7) 

XCode中可设置:

1、Architectures将制定项目将支持哪些指令集

2、Build Active Architecture Only 用于设置是否只编译当前使用的设备对应的arm指令集,当该选项设置成YES时,具体编译的指令集取局于当前的设备支持的armv指令集,比如:Architectures 设置为 arm64,armv7。如果当前设备只支持armv7,则只会生成armv7指令集的二进制包

当了解了以上原理后,面对Undefined symbols for architecture arm64 类似的问题就迎刃而解啦。

解决方案一:

可以打开终端借助“lipo - info 静态库名称.a”命令来查看出现问题的静态库支持的指令集

lipo -info libLocalShopping.a

然后根据输出可知支持哪些指令集,然后再去下载对应的指令集静态库

解决方案二:

如遇到类似下图中的错误:

error

优先去查看是否是由于缺失import头文件,导致;

上一篇下一篇

猜你喜欢

热点阅读