我在尝试链接iPhone应用程序以使用我正在使用的静态库时出现问题。
该应用程序适用于iPhone OS 3.0,但当我尝试升级到iOS4.0时,我遇到了一些问题。
我正在尝试使用的库是一个通用脂肪,其中包含arm和i386的版本。现在,当我尝试使用这个胖库时,我收到了“未找到符号”错误。它适用于设备(手臂),但在尝试编译模拟器(i386)时,我遇到了问题。
它给我的错误是:
"_OBJC_CLASS_$_ClassName", referenced from: file.o
Symbol(s) not found."
查看胖库(使用nm)我看到armv6和armv7下列出的符号为“S”,我想这就是它工作正常的原因!但是,我无法在i386下找到相同的内容,我也不知道为什么!
我确实看到一个符号“.objc_class_name_ClassName”被列为“A”类型,但是那里没有列出被认为缺失的符号。
有什么想法吗?
答案 0 :(得分:0)
也许你需要构建一个针对iOS 4.0的lib版本
答案 1 :(得分:0)
许多库在转向iOS 4和SDK 3.2.3时被打破。如果您可以使用SDK 4构建库并将其重新打造成一个胖库,那么您可能会重新走上正轨。
确保将部署目标设置为3.x或您计划发送应用的任何内容。
答案 2 :(得分:0)