如何构建适用于os3.x和os4.x的通用静态库

时间:2010-10-21 10:47:38

标签: iphone universal-binary static-libraries

您好我正在尝试创建一个可以添加到任何ios项目的静态库,但我只能让它工作,如果我在ios3中构建库,它将适用于ios3项目但不适用于ios4和反之亦然。

我得到的错误是:

未定义的符号:   “.objc_class_name_UIImage”,引自:       Test3-Release.a中的文字指针@_ OBJC @ _cls_refs @UIImage(TestViewController.o)   “.objc_class_name_NSNotificationCenter”,引自:       Test3-Release.a中的文字指针@_ OBJC @ _cls_refs @ NSNotificationCenter(Test.o)

所以看起来它没有为图书馆找到Foundation和UIKit框架?

这是我到目前为止所做的:

我有两个项目:1是一个带有库构建目标的库项目。另一个是测试项目,它试图使用第一个库中构建的库。

1)使用静态库目标创建项目并添加所有实现文件

2)在“Link Binary with Libraries”文件夹中添加了像UIKit,Foundation等库,并将所有链接库设置为在我的库目标中具有弱类型。

3)构建库,将其添加到我的测试项目中,以及我的头文件。

4)在我的测试项目中,我为所有构建配置设置了其他链接器标志-ObjC -all_load

当我编译它时,给了我一堆错误,好像我没有包含任何框架。

任何人对我该做什么都有任何想法?

提示(也许?) 我还注意到在我的库目标中添加任何框架到“Link Binary with Libraries”文件夹似乎没有做任何事情。我将CoreLocation添加到该文件夹​​,但是当我尝试在我的测试项目中编译时,在我将CoreLocation添加到Test Project Frameworks文件夹之前,它将无法编译。

1 个答案:

答案 0 :(得分:0)

您的依赖项目(使用静态库)尚未链接Framework库。

只需添加依赖的项目框架(uikIt,Foundation等),一切都会正常工作。