我正在尝试在iOS项目中包含静态库。 我导入.a文件和每个.h相关,但后来我收到此错误:
ld: warning: ignoring file /Users/alexis/Library/Developer/Xcode/DerivedData/PlazappPartnerWorkspace- cdrmloavlcqouugawmtqywiinqne/Build/Products/Debug-iphoneos/libPlazappPartnerLib.a, file was built for archive which is not the architecture being linked (i386)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_LauncherViewController", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我想有一个架构类型的问题,但我不明白为什么以及如何解决它。 有人可以向我解释并告诉我如何解决它吗?谢谢!
答案 0 :(得分:1)
看起来您的库是为了在设备(arm架构)中运行而构建的,并且您尝试在模拟器(i386架构)中使用它。检查您的库构建设置。它们应与您的项目构建设置相匹配。
甚至更好,为开发目的创建胖库。 lipo
命令是你的朋友。
验证库中存在的当前体系结构:(在终端中)
cd <path to library folder> # in you case: /Users/alexis/Library/Developer/Xcode/DerivedData/PlazappPartnerWorkspace- cdrmloavlcqouugawmtqywiinqne/Build/Products/Debug-iphoneos
lipo -info libPlazappPartnerLib.a
输出应如下所示:
Architectures in the fat file: libPlazappPartnerLib.a are: armv6 armv7
它们应与您正在构建的目标设备或模拟器匹配。