使用 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的主要内容,如果未能解决你的问题,请参考以下文章

安装 CuSpatial 或 CuDf 库时找不到包错误

git-upload-pack:克隆远程 Git 存储库时找不到命令

使用 webpack 时找不到 vertx 模块

运行可执行文件时找不到共享库,即使共享库存在于指定路径中

架构 armv7 的未定义符号 - route-me 库,仅限临时

使用 cocoapods 时找不到 Mantle/Mantle.h' 文件