4

当我尝试编译我的 iPhone 应用程序并在模拟器中运行它时,我收到了抱怨未定义符号的错误。所有这些符号都对应于我的项目中包含且未丢失的类。

例子:

"_OBJC_CLASS_$_SHKFacebook", referenced from:
      objc-class-ref in FooAppDelegate.o
      objc-class-ref in FooLandingPageViewController.o
      objc-class-ref in FooAppDelegate.o

但该项目并没有缺少 SHKFacebook.h。

有任何想法吗?

谢谢!

4

3 回答 3

3

我在这个项目中有多个 Xcode 目标,当我将文件添加到项目中时,我将它们添加到错误的目标下,使它们对我试图构建的目标不可见。

于 2012-06-06T20:35:56.930 回答
1

SHKFaceBook.h 是您的文件还是来自图书馆的文件?

如果它来自库,请单击您的项目目标并选择 Build Phases 选项卡,然后选择 Link Binary With Library 部分并确保添加了库。

如果 SHKFaceBook.h 不是来自库,那么如果相应的 .m 文件不存在,则包含 .h 文件的事实是无关紧要的。如果 .m 文件已经在您的 XCode 项目中,则从 Build Phases 选项卡中选择 Compile Sources 并确保必要的文件在那里。

仅供参考,这是一个链接错误,链接错误与编译错误不同。源文件可以仅使用标头进行编译,但如果没有实际代码,则无法链接和构建它们。头文件不是代码,它更像是对代码中内容的描述。

于 2012-05-31T21:07:49.400 回答
0

在我看来,您链接的库仅是为 arm 平台编译的,而不是为 i386 编译的 - 如果您有源代码,请尝试干净/重新构建?

于 2012-05-31T20:18:58.287 回答