【问题标题】:Spatialite and iOSSpatialite 和 iOS
【发布时间】:2012-11-19 22:19:02
【问题描述】:

我正在尝试构建最新版本的 Spatialite 以在 iOS 平台上使用,但进展不大。我已经下载了以下库的最新版本,并尝试将它们引入一个项目(每个项目都作为自己的目标)并将它们构建为一个静态库。

  • Spatialite(3.0.1 合并)
  • GEOS(基于 20121114 每晚构建)
  • PROJ.4 (4.8.0)

每次下载都包含数十个文件,其中包含脚本、标题和源代码。从步骤here 中不清楚,哪些应该加载,哪些不应该加载。我已经尝试将每个目录中的所有文件都引入到他们自己的组中,但无济于事,我卡在第 2 步,因为我的 Xcode 版本与示例中使用的版本不同。添加 PROJ.4 位时,Xcode 会询问我是否要创建“外部构建系统项目”。

我还尝试从post 获取 Lionel 的项目并更新所有软件的版本。不幸的是,Xcode 在新源代码中抛出了几十个警告,同时也抛出了一些错误。如有必要,我可以分享这些。更进一步,我什至将他的输出(一个静态库和头文件)带到另一个项目中,但由于某种原因,编译器抛出错误,说他们找不到“sqlite3”。我已将 SQLite3 添加到项目中,但没有解决问题。

我也尝试过跟进这个thread,但我无法提问,所以我无法询问原始用户他/她是如何做到这一点的。

最后一个问题:

有谁知道如何使用 Xcode 4.5 和 iOS 6 构建最新版本的 Spatialite 及其配套库(GEOS、PROJ.4)?

如果是这样,你能分享一下你是怎么做到的吗?我也想从概念上了解正在发生的事情。

【问题讨论】:

标签: ios xcode ios6 spatialite


【解决方案1】:

我知道两种替代方法,对我来说都很好。

  1. libspatialite-ios获取Makefile和补丁,输入make
  2. 使用 Cocoapods 和称为 'spatialite' 的 pod 或更通用的 SpatialDBKit

两者都会为您提供当前较旧的 4.1.1 版本,但这对于大多数用途来说都很好。

【讨论】:

  • 有趣。我得去看看。我们最终在设备上使用了非 GIS 解决方案,并在不久前继续前进。
  • 事实上,我已经在 Android 上使用普通 SQLite 和 Spatialite 测试了简单的点数据,对于基本数据存储等许多情况,普通(非 GIS)SQLite 的速度同样快,甚至快点。我希望在 iOs 上也一样。
【解决方案2】:

通过 CocoaPods:

为 pod install 安装依赖项

brew install automake autoconf libtool

然后在您的 XCode 项目中添加您的 Podfile 模板:

pod init

添加spatialite pod依赖:

vi Podfile

并在你的主要目标中添加这一行

pod 'spatialite', '4.1.1'

如果 Podfile 中有现有项目,则添加工作区

workspace 'YourWorkspaceName'

运行

pod install

坐下来放松一下。完成后使用 XCode 打开工作区

【讨论】:

  • 如果您不介意可可豆荚的依赖性,这看起来是一个可行的解决方案。我有机会验证一下。
  • 在 XCode 7.3 下不适合我 - 无论如何我都有 CP 集成,我设法添加了新 pod,但安装后源代码无法编译,出现与 sqlite3_int64sqlite3 相关的 19 个错误
  • 看起来这个答案已经破裂。我尝试将 podspec 更新为 4.3.0 这里 gist.github.com/lukepighetti/44b8a32b9bceece47015c9a54595f6ea 但我不断收到 'geos_c.h' file not found with <angled> include; use "quotes" instead 错误。看起来spatialite 使用了旧的导入语法,xcode programmersought.com/article/60352123739 不支持或“shimmable”。尝试过5.0.0,但它需要有更多经验的人来设置新的 podspec
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多