我正在尝试在 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)
我猜想存在架构类型的问题,但我不明白为什么也不知道如何解决它。 有人可以向我解释一下并告诉我如何解决吗?谢谢!
最佳答案
看来您的库是为在设备(arm 架构)中运行而构建的,并且您尝试在模拟器(i386 架构)中使用它。检查您的库build设置。它们应该与您的项目build设置相匹配。
或者更好的是,创建一个用于开发目的的胖库。 lipo
命令是你的 friend 。
要验证库中当前的架构:(在终端中)
cd <path to library folder> <i># in you case: /Users/alexis/Library/Developer/Xcode/DerivedData/PlazappPartnerWorkspace- cdrmloavlcqouugawmtqywiinqne/Build/Products/Debug-iphoneos</i>
lipo -info libPlazappPartnerLib.a
输出应如下所示:
Architectures in the fat file: libPlazappPartnerLib.a are: <b>armv6 armv7</b>
它们应该与您正在构建的目标设备或模拟器相匹配。
关于ios - 在 iOS 项目中包含我的静态库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7977230/