在我的应用程序中,我包含一个私有(private)框架。
我的项目中有框架文件。
当我运行应用程序时,出现如下所示的链接器错误。
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_MessageWebLayer", referenced from:
objc-class-ref in MessageUIAppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
实际上这个框架在 ios 3 中运行良好,但是一旦我更改了基础 sdk 5.0, 它给了我一个错误。 MessageWebLayer 是头文件的名称。
***EDIT1***强>
当我在示例项目中包含私有(private)框架时,它在 iOS 3.2 和 iOS 5.0 上都能正常工作。 但我现有的项目仍然出现错误。
但是,如果有人有任何线索,我找到了一个链接。 Nice answer but could not get it
****EDIT2**强> 在列表中的第一个答案中指出,为您的项目找到正确的构建吗?但如何? 如果我在某处观看它,则写为/Users/company/Library/Developer/Xcode/DerivedData/MyappUI-azodwyjwfonowicennduyclhdest/Build/Products/Debug-iphonesimulator/MyappUI.app/MyappUI 正常 i386
最后他们写了i386是什么意思?
这和我的构建有什么联系吗?
最佳答案
“未找到架构 i386 的符号”位表示该库没有与您的 Mac 中的英特尔处理器兼容的二进制文件(因为大概您正在尝试在模拟器上运行)。它们很可能是为用于 iOS 设备的 ARMv6/ARMv7 处理器架构构建的。您需要找到适合 i386 架构的版本,并根据您运行的平台提供条件链接。或者只是在设备上运行它。
关于iphone - 包含框架时链接器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7850571/