在另一个包含一个Xcode项目 – 链接器错误
我正试图做到这一点,并遇到问题。 父项目需要从子项目访问类SettingsViewController。 我已经把我的标题searchpath中的子项目path。 一切都编译好,但我得到链接器错误,如下所示:
未定义的符号:“_OBJC_METACLASS _ $ _ SettingsViewController”,引用来自:_OBJC_METACLASS __ StatisticsViewController.o中的StatisticsViewController“_OBJC_CLASS _ $ _ SettingsViewController”,引用来自:SelectionViewController.o中的objc-class-ref-to-SettingsViewController _OBJC_CLASS _ $ _ StatisticsViewController.o中的StatisticsViewController ld:符号(s)not found collect2:ld返回1退出状态
我怎样才能解决这个问题?
我假设子项目是一个静态库。 目前,您的父项目知道如何find子项目的头文件(否则它不会编译),但它不知道它必须链接到子项目的库(.a)文件。
您可能应该将库文件添加到目标> {您的应用程序}>链接二进制与库 。 此外,您可能需要添加链接器标志-all_load
和可能的-all_load
。
在网上有很多详细的描述,比如用Xcode编译iPhone静态库 。
更新:
如果它不是一个静态库,那么这是一个相当奇怪的项目设置。 您可以做的最好的事情是将共享文件(.h和.m)添加到这两个项目。 然后他们将在两个项目中独立编译。 这应该工作,如果你有很less的共享文件。
但我build议使用静态库的项目设置。 如果你正确地设置它,它会很好地工作。 我正在成功使用它。 而且 – 正如我以前告诉过的那样 – 在网上有几个很好的描述如何设置。
你可能会错过一个框架。 虽然不能从你在这里发布的内容中分辨出来。
我知道这是非常古老的,但可能对别人有帮助。
您需要在“构build阶段”中设置目标依赖关系中包含的项目,以便编译包含的项目,还应该在“链接库”链接中添加项目的静态库。
点击你的Target-> Build Phases并设置它们。