首先,请原谅并指出我是否要使用其他协议来引用另一个帖子/帖子。
有一个前一个帖子how to compile spatialite for iOS,其中最顶层的答案部分描述了将spatialite建设为iOS的静态库。答案包括文字:
“一旦你拖动.a(两者都需要在模拟器和真实硬件上工作),你可以通过调用spatialite_init(1)
来初始化spaceite。”
我猜这是翻译成以下某个版本的?
Xcode 4
文件 - >新 - >新目标 - > iOS->框架&图书馆 - > Cocoa Touch静态图书馆
将库命名为libSpatialite_TedS
将标题文件拖到libSpatialite_TedS - >复制标题(这里有问题......'spatialite2.3.1.zip'下载的'headers'目录中有一个spatialite.h文件。然后在子目录'spatialite'中有另一个不同的spatialite.h我们只是从'headers'目录拖动头文件,然后将目录'spatialite'作为目录拖到我们的Xcode静态库'myNewLibrary'的'Copy Headers'区域?)
< / LI>拖动'.a文件'libSPATIALITE2.3.1_arm.a&amp; libSPATIALITE2.3.1_x86.a
我们不应该在“编译源”字段中使用这些标题的“.m”文件吗?
现在,在我的项目中没有引用libSpatialite_TedS
的情况下,当我'Command-B'构建时,项目构建成功。但是,当我在
/用户/管理员/库/开发商/ Xcode中/ DerivedData / MyProject的-gutnkbwqqonzgxbcmfzzzkadqhid /编译/产品/释放-iphonesimulator
我看到了build的产品,但它们不包含libSpatialite_TedS。
这是因为编译器是'智能'并且认识到项目中没有引用任何头文件/ .a文件所以它不打算编译它们吗?
而且,这是实现原始海报how to compile spatialite for iOS目标的正确方法吗?
非常感谢, 特德S
答案 0 :(得分:3)
我也遇到了原始海报的链接器错误,但是通过在目标中包含libsqlite3.dylib,libstc ++。dylib和libiconv.dylib来解决它。
希望这有帮助!
答案 1 :(得分:2)
Ted,我相信.a(静态库)文件和标题应该立即用于项目中,而不是像你所描述的那样在另一个静态库中使用。它们是项目输出的结果。我想你可以在这里找到构建它们的项目:
http://lionel.gueganton.free.fr/spatialite/
还有一些关于静态库文件的内容:
What is a .a (as libcrypto.a) file?
<强> EDITED 强>
这是您可能会发现有用的另一个链接。它是iOS中静态库构建过程的摘要: http://www.icodeblog.com/2011/04/07/creating-static-libraries-for-ios/