胖文件中的体系结构:libXxx.a是: armv7 i386 arm64
但是依赖项目中的编译器会产生链接错误,
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_ClassXXXX", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)我是不是遗漏了什么?库项目的所有目标都有体系结构:标准体系结构(armv7,arm64)和有效的体系结构arm64、armv7、armv7s
在我的lipo命令中,在创建通用二进制文件时,我将从iphone仿真器和iphoneos文件夹中同时使用lipo。
发布于 2015-04-13 14:15:53
您的主要线索是,它说“在架构x86_64中找不到符号”,而不是“在体系结构i386中找不到符号”。
修复是调整您的构建设置,以允许32位构建。
1)在(左侧侧边栏)中选择项目文件
2)选择项目的目标(刚出现的面板中目标下的第一项)
3)查找“架构”设置(如果找不到“架构”,请确保选中“所有”)
4)将其从“标准体系结构”更改为“通用”(或者显式“32位”(如果您愿意)。
您应该能够在这样做之后进行构建。
发布于 2015-04-14 04:44:58
您需要在静态库项目中创建一个通用二进制文件,包括以下体系结构。体系结构应该包括64位、armv7、armv7s、arm64.
现在,当您在终端上执行lipo -info anyStaticLibrary.a .a时,您应该会看到armv7 armv7s i386 x86_64 arm64体系结构作为您的fat二进制文件。
还请注意,使用上述静态库的项目可以很好地处理架构的默认设置。
https://stackoverflow.com/questions/29607258
复制相似问题