iOS整合Unity项目加入SceneKit报错Undefined symbols for architecture arm64: "_OBJC_CLASS_$_SCNLight"
来源:互联网 发布:跑团用软件 编辑:程序博客网 时间:2024/06/05 15:46
问题描述
在Unity导出的iOS项目中进行开发时,自定义的视图中使用SceneKit时报错:
ld: warning: arm64 function not 4-byte aligned: ltmp0 from /Users/hustlion/idc/20161217园博园/HolyEvilCapture/Libraries/libiPhone-lib.a(unwind_test_arm64.o)ld: warning: arm64 function not 4-byte aligned: _unwind_tester from /Users/hustlion/idc/20161217园博园/HolyEvilCapture/Libraries/libiPhone-lib.a(unwind_test_arm64.o)Undefined symbols for architecture arm64: "_OBJC_CLASS_$_SCNLight", referenced from: objc-class-ref in playerInfoViewController.o "_OBJC_CLASS_$_SCNCamera", referenced from: objc-class-ref in playerInfoViewController.o "_SCNLightTypeOmni", referenced from: -[playerInfoViewController addScene] in playerInfoViewController.o "_OBJC_CLASS_$_SCNNode", referenced from: objc-class-ref in playerInfoViewController.o "_OBJC_CLASS_$_SCNScene", referenced from: objc-class-ref in playerInfoViewController.o "_SCNLightTypeAmbient", referenced from: -[playerInfoViewController addScene] in playerInfoViewController.old: symbol(s) not found for architecture arm64clang: error: linker command failed with exit code 1 (use -v to see invocation)
原因分析
笔者在单独写UI界面(没有与Unity整合时),使用SceneKit只需要引用对应的头文件。但是与Unity整合后,发现需要在Build Phases中引入SceneKit.framework才能正常编译。可能是Unity导出项目的某些编译设定导致了要额外引入SceneKit.framework才能使用SceneKit。
解决办法
在Build Phases中引入SceneKit.framework,如图所示:
小结
遇到Undefined symbols for architecture arm64: "_OBJC_CLASS_$_SCNLight"
类似的错误时,可以先考虑是否有相应的framework可以引入。
参考
- IOS编译报错:objc-class-ref in AppDelegate.o之解决方案 Xcode7
- iOS 中的 armv7,armv7s,arm64,i386,x86_64 都是什么
- No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)
- 彻底解决OBJC_CLASS$_某文件名”, referenced from:问题(转)
0 0
- iOS整合Unity项目加入SceneKit报错Undefined symbols for architecture arm64: "_OBJC_CLASS_$_SCNLight"
- 编译报错:Undefined symbols for architecture arm64: "_OBJC_CLASS_$_类名", referenced from
- Undefined symbols for architecture arm64 "_OBJC_CLASS_$_FBSession", referenced from
- Undefined symbols for architecture arm64: "_OBJC_CLASS_$_IJKFFMoviePlayerController", referenced f
- Undefined symbols for architecture arm64: "_OBJC_CLASS_$_CNContactPickerViewController", reference
- iOS错误:Undefined symbols for architecture arm64
- ios Undefined symbols for architecture arm64
- iOS开发 - Undefined symbols for architecture arm64:
- iOS :Undefined symbols for architecture arm64解决方案
- Undefined symbols for architecture arm64:
- Undefined symbols for architecture arm64:
- Undefined symbols for architecture arm64
- Undefined symbols for architecture arm64:
- Undefined symbols for architecture arm64:
- Undefined symbols for architecture arm64
- Undefined symbols for architecture arm64
- Undefined symbols for architecture arm64: (加入opencv框架时)
- iOS报错:108 duplicate symbols for architecture arm64
- java.net.SocketException四大异常解决方案
- HDU1561-The more, The Better
- oc中对象数组排序
- webdriver-浏览器的控制
- JNI 获取成员变量与方法
- iOS整合Unity项目加入SceneKit报错Undefined symbols for architecture arm64: "_OBJC_CLASS_$_SCNLight"
- Eclipse 常用快捷键
- mustache 的使用
- [bzoj4584]: [Apio2016]赛艇
- VMware虚拟机的三种联网方法及原理
- 不不不不吧
- linux解压zip
- Nginx学习总结(6)——Nginx + https + 免费SSL证书配置指南
- C# 参数按照ASCII码从小到大排序(字典序)