找回密码
 注册
关于网站域名变更的通知
查看: 603|回复: 2
打印 上一主题 下一主题

指令集与错误Undefined symbols for architecture arm64

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-1-16 14:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

先说环境:xcode7.3.1,真机9.3.2版本、真机8.4版本5 A1 T, c0 @2 T9 A9 ^% Y- ?% O* M3 R' g/ V
第三方使用cocoaPods管理。
9 V- f. d9 L. W0 t报错如下图:
/ X0 ^' d- I, u6 s- X


" B' e4 g3 b1 d6 T

我在模拟器上设置, T5 \" `- K2 F$ J4 D  X. ~
Build Active Architecture Only的debug为yes,release为NO。/ g  j2 r" t6 {4 e
Valid architectures添加ARM64
: k  c9 ^3 C8 {/ {模拟器和真机9.3.2版本正常。

真机8.4上报错16个错误。& [9 C2 s  Q; V, l% P% M7 \! i1 a
设置Build Active Architecture Only全NO,Valid architectures添加arm64报错同上。
6 E& U3 [' l& A% p6 ~设置Build Active Architecture Only的debug为yes,release为NO,0 t4 W+ Q, K+ N  I: [- y  V
Valid architectures移除arm64只报错一个。

设置设置Build Active Architecture Only全NO, B  U" V" w0 x' f$ m# s" x& |
Valid architectures移除arm64% M9 Y2 Y/ C3 N/ Q
真机8.4版本正常。6 I8 A$ ]' }3 l3 l
这种临时解决方法能提交AppStore吗?' n6 P) c& |1 {1 k5 x2 Y
为什么会这么报错,有什么方法彻底解决?

在终端使用命令: find . -name *.a -exec lipo -info "{}" \;查看第三方是否支持arm64
/ E) s! e$ ?$ d# }/ m6 e3 m6 x" b结果如下:
3 v1 ]  b; ?$ [6 XArchitectures in the fat file: ./Pods/JPush/lib/libjpush-ios-2.1.7.a are: armv7 armv7s i386 x86_64 arm64 / w& a; L/ K6 X2 V
Architectures in the fat file: ./xinetong/Ctrls/OfficeCtrl/AdOfficeCtrl/TempCode0525/Schedule/AgoraSDK/libagora_fat.a are: armv7 i386 x86_64 arm64
+ }3 _. \6 X# L, h/ [3 bArchitectures in the fat file: ./xinetong/Ctrls/OfficeCtrl/AdOfficeCtrl/TempCode0525/Schedule/AgoraSDK/libagoradep_fat.a are: armv7 i386 x86_64 arm64
! B- V% A. `3 J6 _/ mArchitectures in the fat file: ./xinetong/Ctrls/OfficeCtrl/AdOfficeCtrl/TempCode0525/Schedule/AgoraSDK/libCrasheye.a are: armv7 i386 x86_64 arm64

6 ^. r3 O& `* I! e' s4 r

% g4 i9 J4 F$ D8 E& w8 c( C0 o- |5 }; N8 Z- J  L+ G, }

该用户从未签到

2#
发表于 2020-1-16 19:42 | 只看该作者

* k: ?) o% ~  ~8 p+ ?2 U  c在项目中引入SVSegmentedControl.h/.my以及SVSSegmentedThumb.h/.m之后应用引入类,编译时候报错. C, J& y/ q7 ^9 a" Y3 k
  • Undefined symbols for architecture armv6:
  •   "_OBJC_CLASS_$_SVSegmentedControl", referenced from:
  •       objc-class-ref in SVSegmentedControl.o
  • ld: symbol(s) not found for architecture armv6
    , u2 H- E+ a0 v$ r% P6 P
0 _, }  T& c7 K! k9 N  t! v! j/ ]2 y
  • Undefined symbols for architecture armv6:
  •   "_OBJC_CLASS_$_SVSSegmentedThumb", referenced from:
  •       objc-class-ref in SVSSegmentedThumb.o
  • ld: symbol(s) not found for architecture armv6" r2 |9 X* a% p6 g7 t8 R
1 T) S; i* S4 \& y
这种情况一般是库引用的问题,解决办法选择工程的TARGETS-->Build Phases-->Link Binary With Libraries 点击“+”图标添加对应的库。
5 Y& Z7 P7 D( s  b但是在此地的原因其实也是这样,编译时候找不到对应的类,所以需要我们在Build Phases-->Compile Sources中手动添加SVSegmentedControl.my以及SVSSegmentedThumb.m两项,之后clean项目,重新编译即可。
. f3 B3 V4 d# k- e6 a5 z
0 B+ ^1 Q7 [3 r& n$ D( R7 G
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 17:38 , Processed in 0.187500 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表