gpt4 book ai didi

ios - 使用 WhirlyGlobe 和 GRDB pod 时找不到“sqlite3.h”文件

转载 作者:行者123 更新时间:2023-11-29 00:11:09 44 4
gpt4 key购买 nike

我设置了一个 Podfile 以使用 WhirlyGlobeMaply :

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 install/clean/build everything,新的依赖项编译得很好 (GRDB),但是在编译旧的依赖项 (WhirlyGlobe) 的过程中,我得到:

'sqlite3.h' file not found

因此,两个 pod 都在自己编译,但在 sqlite header 方面似乎存在一些交互。

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

到目前为止我发现了什么:

WhirlyGlobe 和 GRDB.swift 都包含 sqlite 作为库。

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

Pods/GRDB.swift/Support/sqlite3.h

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

引发错误的文件 #import "sqlite3.h"VectorDatabase.h 并且是 podspec 所建议的 WhirlyGlobeLib 的一部分

到目前为止我做了什么:

  • 运行 pod deintegratepod install 关闭 XCode
  • 尝试将带有 sqlite3.h 的目录从 GRDB 添加到标题搜索路径(我的项目和 WhirlyGlobe Pods 目标的标题搜索路径)
  • 尝试将“始终搜索用户路径”设置为"is"
  • 带有标题搜索路径的各种其他内容,我现在已还原。

(非常)感谢任何提示。

最佳答案

这里是 GRDB 的作者。

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

现在,这里有两种可能的解决方案可以解决您的问题:

  1. 替换#import "sqlite3.h"#import <sqlite3.h> , 这样编译器就知道应该在系统头文件中搜索它。
  2. 切换到 Swift 4:Swift 4 的 GRDB 2.0 不再包含 sqlite3.h。

关于ios - 使用 WhirlyGlobe 和 GRDB pod 时找不到“sqlite3.h”文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46431920/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com