使用 route-me 库时找不到 FMDatabase.h
Posted
技术标签:
【中文标题】使用 route-me 库时找不到 FMDatabase.h【英文标题】:FMDatabase.h not found when using route-me library 【发布时间】:2013-03-28 13:28:32 【问题描述】:所以我试图在我的应用程序中使用 route-me 小部件,但 xcode 一直抱怨它找不到 FMDatabase.h,但它包含在项目中(尽管在包含在我的项目中的不同项目下)。我已经复制了示例应用程序的制作方式,但示例项目没有出现此错误。 RMDBMapSource.h 文件包含在 MapView 项目中,所以我自己不需要包含 fmdb 的东西(并且因为示例项目不这样做)
当然,如果文件在构建阶段下的编译源/复制头文件下,这意味着它应该能够找到该文件吗?这是对我的问题的一个相当乏味的解释,但如果有人之前使用过 route-me 库,也许他们也遇到过同样的问题,并且可以为我指明正确的方向
【问题讨论】:
检查是否像#import "FMDatabase.h"
一样被导入,如果是你可以试试#import <FMDatabase.h>
...
我刚试过,没用。无论如何我都不应该改变它,因为它都捆绑在这个 MapView 项目中,所以我不认为这是代码错误的情况,只是 xcode 很傻
您已在 Build Sources 的 .h 中显示。 .m 也在那里吗?您不需要那里的 .h 文件。您需要 .m 文件。
是的 .m 在那里,我想我解决了一半,FMDatabase.h not found 错误消失了.. 但现在我得到一个链接器错误Undefined symbols for architecture i386: "_OBJC_CLASS_$_RMMapView", referenced from: objc-class-ref in InfoTableHelper.o
这很奇怪,因为我也从不同的文件引用 RMMapView 并且不会给出链接器错误。 (尝试一次只在一个文件中引用它,它只会给 infoTableHelper 报错)
好吧,我说的是半假的,它有链接器错误,只要我执行[RMMapView alloc]init]
这很奇怪.. 如果我有RMMapView *map = [array objectAtIndex:0]
,那么它就可以了
【参考方案1】:
解决了我自己的错误。首先在主项目的构建设置中,“搜索标题路径”设置不正确,它被设置为/MapView/
而不是/MapView/**
,解决了 FMDatabase.h 缺失错误。
然后,如果其他人在我解决第一个问题后遇到像我一样的链接器错误,请确保您的链接二进制文件中包含 libMapView.a
库部分。 (我之前有过,但在版本控制提交期间,不知何故我们的项目文件决定不再添加该库,我完全忘记了它,所以我花了很长时间才发现它丢失了)
【讨论】:
以上是关于使用 route-me 库时找不到 FMDatabase.h的主要内容,如果未能解决你的问题,请参考以下文章
git-upload-pack:克隆远程 Git 存储库时找不到命令