2012-11-19 61 views
3

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

  • Spatialite(3.0.1合并)
  • GEOS(夜间建立在20121114)
  • PROJ.4(4.8.0)

每个下载含有几十种文件与scrips混杂,头文件和源代码。从步骤here不清楚,哪些应该加载,哪些不应该加载。我已经尝试将每个目录中的所有文件导入到自己的组中,但无济于事,因为我的Xcode版本与示例中使用的版本不同,所以我陷入了第2步。当添加PROJ.4位时,Xcode询问我是否想创建一个“外部构建系统项目”。

我也尝试了从这个post Lionel的项目,并更新所有软件的版本。不幸的是,Xcode在新的源代码中抛出了数十个警告,并且也引发了一些错误。如有必要我可以分享这些内容。更进一步,我甚至将他的输出(一个静态库和头文件)并将它们带入另一个项目,但由于某种原因,编译器抛出错误,说它找不到“sqlite3”。我已经将SQLite3添加到了该项目中,但它并没有明确说明。

我也试过跟进thread,但我无法提出问题,所以我不能问原来的用户他/她是如何做到的。

最后一个问题:

有谁知道如何在Xcode 4.5和iOS 6打造的最新版本Spatialite及其配套库(GEOS,PROJ.4)的?

如果是这样,你可以分享你是如何做到的吗?我想从概念上理解发生的事情。

+0

重复http://stackoverflow.com/questions/4793970/how-to-compile-spatialite-for-ios – JaakL

+0

@JaakL我在我的问题的第三段引用该帖子。 – Aaron

回答

0

我知道两种替代方法,两种都适合我。

  1. 得到的Makefile和libspatialite-ios补丁,类型make
  2. 使用的CocoaPods荚称为“spatialite”或更一般SpatialDBKit

都将给您目前是年纪大一点的4.1.1版本,但对大多数用途来说没什么问题。

+0

有趣。我必须检查一下。我们结束了与非GIS解决方案板上的设备,并在不久前移动。 – Aaron

+0

事实上,我已经用Android上的普通SQLite和Spatialite测试了简单的点数据,对于像基本数据存储这样的许多情况,普通(非GIS)SQLite的速度一样快,甚至更快。我希望对iOs也一样。 – JaakL

+0

很酷。很高兴知道。 – Aaron

1

通过的CocoaPods:

安装依赖于吊舱安装

brew install automake autoconf libtool 

再加入您的Xcode项目中您Podfile模板:

pod init 

添加spatialite荚依赖性:

vi Podfile 

,如果现有项目中Podfile

workspace 'YourWorkspaceName' 

运行

pod install 

加入这一行你的主要目标内

pod 'spatialite', '4.1.1' 

添加工作区高枕无忧。当完成打开工作区与XCode

+0

看起来像一个可行的解决方案,如果你不介意可可豆荚的依赖。当我有机会验证时,我会看看。 – Aaron

+0

XCode 7.3下不适用于我 - 我有CP集成无论如何,我设法添加新的pod,但安装后源代码不会编译与'sqlite3_int64'和'sqlite3'相关的19个错误 – Krodak