首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用WhirlyGlobe和GRDB时找不到sqlite3.h文件

使用WhirlyGlobe和GRDB时找不到sqlite3.h文件
EN

Stack Overflow用户
提问于 2017-09-26 16:50:32
回答 1查看 869关注 0票数 0

我设置了一个用于使用WhirlyGlobeMaply的Podfile

代码语言:javascript
复制
platform :ios, '10.2'

project 'MyProject.xcodeproj'

target 'MyProject' do
  use frameworks!

  pod 'WhirlyGlobe', '2.4'
  pod 'WhirlyGlobeResources'

  [some other pods]
end

这个造得很好。但是当我添加GRDB.swift

代码语言:javascript
复制
pod GRDB.swift

然后pod安装/清理/构建所有内容,新依赖项将被编译为精细的 (GRDB),但是在编译旧的依赖项(WhirlyGlobe)期间,我得到:

代码语言:javascript
复制
'sqlite3.h' file not found

因此,这两个荚在他们自己的编译,但似乎有一些交互涉及sqlite。

(事实上,我一开始并没有注意到这个问题,因为我没有清理我的项目,在重新构建时,XCode只需要编译GRDB,就可以了。)这种情况只发生在清洁之后。)

到目前为止我发现的:

WhirlyGlobe和GRDB.swift都将sqlite作为一个库。

实际上,在它的Pod安装中包含了一个sqlite3.h文件

Pods/GRDB.swift/Support/sqlite3.h

WhirlyGlobes安装中似乎没有包含这样的文件(用find Pods/ -name "sqlite3.h"检查)。

引发错误的文件#import "sqlite3.h"VectorDatabase.h和WhirlyGlobeLib的一部分,正如podspec所建议的那样。

到目前为止我所做的:

  • ran pod deintegratepod install,带封闭XCode
  • 尝试将sqlite3.h目录从GRDB添加到头搜索路径(我的项目和WhirlyGlobe Pods目标的目录)
  • 尝试将“始终搜索用户路径”设置为“是”
  • 具有头搜索路径的其他各种东西,我现在恢复了。

任何暗示都(非常)感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-26 20:02:30

这里的GRDB作者。

对于上下文: GRDB 3附带sqlite3.h,以便允许应用程序在需要时使用SQLite的低级C apis。该sqlite3.h与iOS SDK附带的标头相同,但为了解决Clang构建模块的方式上的限制,它被复制了。

下面是解决您的问题的两个可能的解决方案:

  1. #import "sqlite3.h"替换为#import <sqlite3.h>,以便编译器知道应该在系统标头中搜索它。
  2. 切换到Swift 4: GRDB2.0forSWIFT 4不再包含sqlite3.h。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46431920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档