【发布时间】:2014-10-25 06:32:07
【问题描述】:
Xcode 在编译时突然向我抛出了这个错误:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Format", referenced from:
objc-class-ref in WOExerciseListViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
经过一番研究,我可能了解到我正在使用的库与 64 位版本不兼容。但这很奇怪,因为我已经使用相同的库至少一周了,在那段时间没有遇到任何编译问题。这两个库只是由一堆类组成,当我从项目中删除它们时,我遇到了同样的问题。由于我自己从未创建过库,所以我不知道如何找到我正在使用的库是否与 64 位兼容(?) 我还尝试了目标面板下架构的以下更改:
- 将 $(ARCHS_STANDARD_INCLUDING_64_BIT) 添加到架构中
- 仅构建活动架构 -> 设置为“否”
- 对于“有效架构”-> 设置为 arm64、armv7 和 armv7s
- 删除了 DerivedData 文件夹及其内容,清理并再次构建
但是这些更改都不起作用。请问,有人有这方面的线索吗? 谢谢
【问题讨论】:
-
您在 xcode 中更改或移动了文件“WOExerciseListViewController”
-
最终如果你想知道库的架构和内容,那么你需要使用
file、lipo、nm和ar来调查。 -
我从我的代码中删除了对这些 3rd 方类的所有引用,但我仍然遇到同样的问题:“架构 i386 的未定义符号”和架构 x86_64 的相同问题。 @Droppy 我是新手,当我说“库”时,我的意思是一个文件夹,其中包含我从 CocoaPods 导入的一些类(.m 和 .h)文件。是否有与这些类相关的 .a 文件,或者我完全误解了库的含义?我还尝试在不使用 cocoaPods 的情况下简单地拖动类,同样的问题。
标签: ios xcode cpu-architecture