我们已经实现了一个静态库并尝试在项目中使用它。该库编译/构建良好,但当我们尝试在分别导入 .a 和 .h 文件后运行该项目时,我们遇到了以下错误:
ld: warning: ignoring file Lib.a, file was built for archive which is not the architecture being linked (i386)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_MFourInOneStaticLib", referenced from:
objc-class-ref in MAppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我已经检查了架构。此外,我们正在使用模拟器进行测试。
最佳答案
看起来你的库没有包含正确的架构。
ios你需要armv7,模拟器你需要i386
测试一下
lipo -info %NAME%
通常 lipo 只为 EITHER arm 或 x86 构建
为两个拱门构建它,然后合并两个文件
lipo ./build/Release-iphoneos/%NAME% ./build/Release-iphonesimulator/%NAME% -output ./Dist/lib/%NAME% -create
关于ios - 静态库和 XCode 4.x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13471693/