我设置了一个用于使用WhirlyGlobeMaply的Podfile
platform :ios, '10.2'
project 'MyProject.xcodeproj'
target 'MyProject' do
use frameworks!
pod 'WhirlyGlobe', '2.4'
pod 'WhirlyGlobeResources'
[some other pods]
end这个造得很好。但是当我添加GRDB.swift时
pod GRDB.swift然后pod安装/清理/构建所有内容,新依赖项将被编译为精细的 (GRDB),但是在编译旧的依赖项(WhirlyGlobe)期间,我得到:
'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所建议的那样。
到目前为止我所做的:
pod deintegrate,pod install,带封闭XCodesqlite3.h目录从GRDB添加到头搜索路径(我的项目和WhirlyGlobe Pods目标的目录)任何暗示都(非常)感激。
发布于 2017-09-26 20:02:30
这里的GRDB作者。
对于上下文: GRDB 3附带sqlite3.h,以便允许应用程序在需要时使用SQLite的低级C apis。该sqlite3.h与iOS SDK附带的标头相同,但为了解决Clang构建模块的方式上的限制,它被复制了。
下面是解决您的问题的两个可能的解决方案:
#import "sqlite3.h"替换为#import <sqlite3.h>,以便编译器知道应该在系统标头中搜索它。https://stackoverflow.com/questions/46431920
复制相似问题