Objective c 为什么可以';我不能使用外部标题吗?

Objective c 为什么可以';我不能使用外部标题吗?,objective-c,ios,xcode,xcode4,Objective C,Ios,Xcode,Xcode4,我创建了一个“Cocoa Touch静态库”,它构建得很好。到目前为止还不错。然后我为iOS创建了一个基于视图的应用程序。我可以从以前创建的库中导入头,但无法运行程序。它总是回来: Undefined symbols for architecture i386: "_OBJC_CLASS_$_GenericList", referenced from: objc-class-ref in Hello_World_2ViewController.o" 为什么会发生这种情况?似乎您没有链接实际

我创建了一个“Cocoa Touch静态库”,它构建得很好。到目前为止还不错。然后我为iOS创建了一个基于视图的应用程序。我可以从以前创建的库中导入头,但无法运行程序。它总是回来:

Undefined symbols for architecture i386:

"_OBJC_CLASS_$_GenericList", referenced from:

objc-class-ref in Hello_World_2ViewController.o"

为什么会发生这种情况?

似乎您没有链接实际的库文件,只是以某种方式引用了头文件。Three20是一个流行的第三方iOS库,他们已经–在页面下方查看“手动将Three20添加到您的项目”,并通过跳过任何不适用的步骤来调整库的流程


或者,我也猜将库的.h和.a文件拖放到应用程序的项目中可能会起作用。

GenericList是库中的类之一吗?如果是这样的话,看起来您并没有实际链接到您的库。在C程序中引用一个头文件来使用一个库是不够的。是的,当我把一个库添加到一个项目中时,通常需要10-15分钟的时间来识别它。(不幸的是,我很少这样做,以至于我永远都记不起秘密握手是什么。)@Sii请告诉我,要真正链接到lib,我必须做些什么@莱昂纳多看到了我的答案。有点不幸的是,Obj-C开发也是C开发,C(和其他本地语言)将构建过程分为编译和链接,每个过程都必须单独设置。让这更容易实现的OS X抽象是“框架”,但你不能在iOS上创建自己的框架——我认为你通常只需要包含源代码文件就可以在项目之间共享代码。另外,通过:,和。