如何解决Undefined Symbols错误?

4th*_*ace 2 iphone objective-c shared-libraries

我收到了这个错误

Undefined symbols:
".objc_class_name_MyClass", referenced from:
  literal-pointer@__OBJC@__cls_refs@MyClass in infoViewController.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

引用下面的静态方法时:

[MyClass ClickComment:self.navigationController];
Run Code Online (Sandbox Code Playgroud)

MyClass是在我在我的应用程序项目中引用的静态库中定义的.当我开始输入"[MyClass"...时,我收到消息提示.应用程序项目知道MyClass存在以及在其上定义了哪些方法.然而,我得到了上述错误.注释掉此调用可以使项目无错误地构建.

在静态库中,我有一个.h文件,它引用了所有库的.h文件.这样,app项目只需要引用静态库中的一个.h文件.静态库项目还有一个应用程序.我用它来测试静态库.我可以做上述调用.当静态库构建设备/调试版本并且app项目具有构建模拟器/调试时,我通常会看到这些类型的错误.但是,两个版本都是同步的.

我知道有一个参考问题,但我不确定如何解决它.有什么建议?

the*_*met 5

这意味着在编译期间会找到头文件,但链接器不知道静态库.确保您的静态库列在项目视图中的"Targets - > YourMainTarget> Link Binary with Libraries"下.

请参阅http://developer.apple.com/tools/XCode/XCodeprojects.html