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

指令集与错误Undefined symbols for architecture arm64

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

先说环境:xcode7.3.1,真机9.3.2版本、真机8.4版本! S3 ?3 e' X' [
第三方使用cocoaPods管理。
& f7 G) ]5 B- J+ q1 e8 E! x报错如下图:
4 N/ U- U' ?) p4 L. O* e) C7 h! ?

% n3 F. r# g8 K3 N

我在模拟器上设置
  W0 B: F2 X% [1 P' XBuild Active Architecture Only的debug为yes,release为NO。  ?# H; D! T& E( ^3 q
Valid architectures添加ARM64
% |/ h/ ~, G2 [4 g7 T  S模拟器和真机9.3.2版本正常。

真机8.4上报错16个错误。+ }- u* Z# i8 B4 W
设置Build Active Architecture Only全NO,Valid architectures添加arm64报错同上。: K* H% Q$ q2 \% w
设置Build Active Architecture Only的debug为yes,release为NO,
! {- `. K. y: FValid architectures移除arm64只报错一个。

设置设置Build Active Architecture Only全NO
9 `$ }6 B  {" S! B6 TValid architectures移除arm64
6 h% R  P( z. Q  x) k; Z真机8.4版本正常。9 V5 c0 s$ @4 A
这种临时解决方法能提交AppStore吗?
. {; t8 A3 {! g* C: |为什么会这么报错,有什么方法彻底解决?

在终端使用命令: find . -name *.a -exec lipo -info "{}" \;查看第三方是否支持arm64
' r% d8 z, w+ l, v' j结果如下:
7 Z) P0 M3 q! n. e. bArchitectures in the fat file: ./Pods/JPush/lib/libjpush-ios-2.1.7.a are: armv7 armv7s i386 x86_64 arm64 ; j" g+ a7 {* L9 b3 u; t: A" N
Architectures in the fat file: ./xinetong/Ctrls/OfficeCtrl/AdOfficeCtrl/TempCode0525/Schedule/AgoraSDK/libagora_fat.a are: armv7 i386 x86_64 arm64 - d1 L6 U: H7 l6 C5 E  }' p
Architectures in the fat file: ./xinetong/Ctrls/OfficeCtrl/AdOfficeCtrl/TempCode0525/Schedule/AgoraSDK/libagoradep_fat.a are: armv7 i386 x86_64 arm64   f$ f& F- _0 Y# A! I: p: ?/ L
Architectures in the fat file: ./xinetong/Ctrls/OfficeCtrl/AdOfficeCtrl/TempCode0525/Schedule/AgoraSDK/libCrasheye.a are: armv7 i386 x86_64 arm64

& {2 E, R& S; a0 I
0 Z8 K- p* u( g8 W! }6 f

+ s  D* m# A9 D0 A4 f( N7 v& f

该用户从未签到

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

2 d6 H0 `, I+ o" \/ N在项目中引入SVSegmentedControl.h/.my以及SVSSegmentedThumb.h/.m之后应用引入类,编译时候报错+ r5 }/ y+ O: g: D% Q
  • Undefined symbols for architecture armv6:
  •   "_OBJC_CLASS_$_SVSegmentedControl", referenced from:
  •       objc-class-ref in SVSegmentedControl.o
  • ld: symbol(s) not found for architecture armv6
    * j; z4 A4 g6 B+ v* t2 ?$ ?* b

/ |# N1 y3 Q, |5 C
  • Undefined symbols for architecture armv6:
  •   "_OBJC_CLASS_$_SVSSegmentedThumb", referenced from:
  •       objc-class-ref in SVSSegmentedThumb.o
  • ld: symbol(s) not found for architecture armv6
    ; c% B. B. D" {2 `0 i

5 v9 P% v% v4 A5 h这种情况一般是库引用的问题,解决办法选择工程的TARGETS-->Build Phases-->Link Binary With Libraries 点击“+”图标添加对应的库。" z0 L5 _8 r% h' Y
但是在此地的原因其实也是这样,编译时候找不到对应的类,所以需要我们在Build Phases-->Compile Sources中手动添加SVSegmentedControl.my以及SVSSegmentedThumb.m两项,之后clean项目,重新编译即可。
/ G8 j/ _. i2 H3 U7 o+ F# P4 q6 R
% w5 b9 p3 p1 [  q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-26 07:53 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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