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

指令集与错误Undefined symbols for architecture arm64

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

先说环境:xcode7.3.1,真机9.3.2版本、真机8.4版本
% p: }* C" p9 @第三方使用cocoaPods管理。8 @0 j. Q. i0 g" W& P9 x3 U! m7 A
报错如下图:
- E4 s/ H) ?( Z0 F2 d+ W  E8 |

/ }% r1 `2 Z3 q" l' u$ f

我在模拟器上设置
4 I9 w4 p6 a2 K+ N% U$ h; |$ yBuild Active Architecture Only的debug为yes,release为NO。
9 m1 a& [2 u6 Y: v$ C2 rValid architectures添加ARM64% C8 M. x. u2 _. q7 z
模拟器和真机9.3.2版本正常。

真机8.4上报错16个错误。6 B& a( U) J3 L
设置Build Active Architecture Only全NO,Valid architectures添加arm64报错同上。
4 d4 b' Q3 Z; N9 L设置Build Active Architecture Only的debug为yes,release为NO,
6 w) s' e4 r% b4 F  `3 N0 QValid architectures移除arm64只报错一个。

设置设置Build Active Architecture Only全NO
0 }. `4 p$ M, U) a3 x% G# WValid architectures移除arm64# k  \7 I" M3 A. L6 P4 A
真机8.4版本正常。
3 y: Q. ~3 s& b6 @' `- h, X这种临时解决方法能提交AppStore吗?" k6 }. z$ ^, v* K8 x) E: p
为什么会这么报错,有什么方法彻底解决?

在终端使用命令: find . -name *.a -exec lipo -info "{}" \;查看第三方是否支持arm646 l7 j% Z- E0 `
结果如下:
0 o! X0 {* t% W  m; W. ^5 ]Architectures in the fat file: ./Pods/JPush/lib/libjpush-ios-2.1.7.a are: armv7 armv7s i386 x86_64 arm64
0 c9 z' x; H2 O  dArchitectures in the fat file: ./xinetong/Ctrls/OfficeCtrl/AdOfficeCtrl/TempCode0525/Schedule/AgoraSDK/libagora_fat.a are: armv7 i386 x86_64 arm64 ) f& S, s4 `& l( W2 I( M: b  z
Architectures in the fat file: ./xinetong/Ctrls/OfficeCtrl/AdOfficeCtrl/TempCode0525/Schedule/AgoraSDK/libagoradep_fat.a are: armv7 i386 x86_64 arm64 + H" ~! F5 o8 H' N3 M4 [
Architectures in the fat file: ./xinetong/Ctrls/OfficeCtrl/AdOfficeCtrl/TempCode0525/Schedule/AgoraSDK/libCrasheye.a are: armv7 i386 x86_64 arm64


3 l  r# T) ^! b' ^. ?3 T! G
3 v2 C% I+ d# u8 @( S/ z
3 {0 v, h# P# j+ z

该用户从未签到

2#
发表于 2020-1-16 19:42 | 只看该作者
3 [& M7 e( h4 H7 q6 U- I! V8 V
在项目中引入SVSegmentedControl.h/.my以及SVSSegmentedThumb.h/.m之后应用引入类,编译时候报错
5 P6 g7 K  {) e, z: R
  • Undefined symbols for architecture armv6:
  •   "_OBJC_CLASS_$_SVSegmentedControl", referenced from:
  •       objc-class-ref in SVSegmentedControl.o
  • ld: symbol(s) not found for architecture armv6
    ; X: g3 v6 H' p' w2 m$ `; k
9 F: _/ Z9 R* H( {
  • Undefined symbols for architecture armv6:
  •   "_OBJC_CLASS_$_SVSSegmentedThumb", referenced from:
  •       objc-class-ref in SVSSegmentedThumb.o
  • ld: symbol(s) not found for architecture armv62 H7 e8 j: ]1 ^4 r0 I
) m7 O# c* l  o2 `( i9 H4 Z3 [  _
这种情况一般是库引用的问题,解决办法选择工程的TARGETS-->Build Phases-->Link Binary With Libraries 点击“+”图标添加对应的库。4 m7 |! \/ e% q$ E5 X1 V2 X
但是在此地的原因其实也是这样,编译时候找不到对应的类,所以需要我们在Build Phases-->Compile Sources中手动添加SVSegmentedControl.my以及SVSSegmentedThumb.m两项,之后clean项目,重新编译即可。) Q! i( B1 H3 E  q

1 \/ ~8 {( J  V0 g' n! Y; i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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