我正在导入第三方项目,该项目有自己的框架。我想研究那个API,当我试图打开那个项目时,我正在
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_T0Command", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_T1Command", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_iSmart", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我花了差不多一个半小时寻找解决方案。
Link Binaries with Libraries
包含所需的框架,最初缺少已添加
该项目已经多次构建和清理。
编辑1 我在框架的二进制文件
上使用终端运行'file'命令file iSmartSDK
iSmartSDK: Mach-O universal binary with 2 architectures
iSmartSDK (for architecture armv7): Mach-O object arm
iSmartSDK (for architecture armv6): Mach-O object arm
答案 0 :(得分:2)
看起来框架只针对ARM编译,而不是针对英特尔(i386)编译。尝试在iPhone上运行它,看看会发生什么......
或者,您可以使用框架二进制文件上的终端运行'file'命令来检查并查看它支持的体系结构。第三方框架是开源的吗?您应该下载源代码,将其包含在项目中,并在每次构建项目时编译它,这样您就不会遇到这样的问题。
答案 1 :(得分:1)
我认为您的ViewController.m
未添加到target's
的{{1}} compiled source
中。
更新1:将“仅构建活动架构”设置为是。
build phases
- > Target
更新2:检查您是否写过Build Settings
。 !!