我是iPhone开发的新手,我在项目中使用第三部分Kal框架时遇到了麻烦。我找不到任何关于如何将Kal框架添加到我的代码的文档,所以我假设只是将源文件添加到我的项目的“Groups and Files”并设置Header文件搜索路径以包含新的码。
我收到此错误(如下所示),它表示什么?
Undefined symbols:
".objc_class_name_KalViewController", referenced from:
literal-pointer@__OBJC@__cls_refs@KalViewController in RootViewController.o
ld: symbol(s) not found
当我添加语句时,我收到此错误...
kalViewController = [[[KalViewController alloc] init] autorelease];
到我的RootViewController.m viewDidLoad方法和#import“Kal.h”
非常感谢你的帮助!
更新:我在a similar SO question ...
中找到了此回复(如下所示)还有另一件事要做: 选择时签入文件列表 “类”组。接下来是复选框 必须启用.m文件(其中 告诉XCode编译并链接 文件)特别是如果你添加它们 “添加现有文件...”命令。
我检查过我的KalViewController.m文件没有选中复选框(我认为这意味着它没有添加到我的目标中),但是如何查看我需要的文件旁边的复选框?我很困惑......
更新:感谢Alex的评论,我从头开始创建了一个新项目并将Kal代码拖入Xcode,然后在添加上面提到的有问题的代码行之后,一切都很好。
答案 0 :(得分:3)
来自GITHUB:
在XCode 4中,单击项目导航器中的项目。假设添加文件到项目并找到Kal.xcodeproj。文件并添加它。 当您在项目中看到Kal项目时,您几乎就在那里。 现在再次在项目导航器中选择项目并转到构建设置。搜索“链接器”并填写其他链接器标志:“-Objc和-all_load”,还插入库搜索路径中Kal目录的路径以及从项目到kal项目的相对路径:“Header Search路径”。 这是建筑设置。
现在去构建阶段: 将Kal静态库添加到目标依赖项中,还将libKal.a添加到Link Binary with Libraries,最后将Kal.bundle添加到“Copy Bundle Resources”。
答案 1 :(得分:1)
您可以尝试将#import“Kal.h”移动到RootViewController.h而不是RootViewController.m中。
编辑:通常,您在Xcode项目中包含诸如Kal之类的框架只需将所有源代码拖到项目中即可。如果完全复制源,则不必更改标题搜索路径。这可能会导致问题。
答案 2 :(得分:0)
我认为kal是静态的,实际上它是 -
按照https://github.com/klazuka/Kal上的说明操作,并告诉您将kal库添加到项目中的最佳方法。
答案 3 :(得分:0)
使用XCode 4,我认为方法是创建一个新的“工作区”,然后将项目和Kal项目添加到其中。
我为迁移的项目做了这个,然后我需要将libKal.a添加到我的项目的Build Phases中。它将文件显示为“缺失”(即红色,带有空白的破折号边框图标),但它似乎有效......