首先,请原谅并指出我是否要使用其他协议来引用另一个线程/帖子。
之前有一个话题如何为iOS编译spatialite https://stackoverflow.com/questions/4793970/how-to-compile-spatialite-for-ios其中最重要的答案部分描述了将 spaceite 构建为 iOS 的静态库。答案包括以下文字:
“一旦你拖放了.a(两者都需要在模拟器和真实硬件上工作),你可以通过调用来初始化spatialitespatialite_init(1)
."
我猜这被翻译成以下的某个版本?
Xcode 4
文件->新建->新目标->iOS->框架和库->Cocoa Touch静态库
将库命名为 - libSpatialite_TedS
将头文件拖到 libSpatialite_TedS -> Copy Headers (这里有问题...在'spatialite2.3.1.zip'下载的'headers'目录中有一个spatialite.h文件。然后在子目录'spatialite'中有另一个spaceite.h 不是一个相同的文件,显然是需要的。我们是否只需从“headers”目录中拖动头文件,然后将目录“spatialite”作为目录拖动到 Xcode 静态库“myNewLibrary”的“Copy Headers”区域中'?)
拖动“.a 文件”libSPATIALITE2.3.1_arm.a 和 libSPATIALITE2.3.1_x86.a
难道我们不应该在“编译源”字段中添加一些“.m”文件来配合这些标头吗?
现在,无需参考libSpatialite_TedS
在我的项目中,当我“Command-B”构建时,项目构建成功。但是,当我在中查找编译后的产品时
/Users/Admin/Library/Developer/Xcode/DerivedData/MyProject-gutnkbwqqonzgxbcmfzzzzkadqhid/Build/Products/Release-iphonesimulator
我看到了 build 的产品,但它们不包括 libSpatialite_TedS。
这是因为编译器是“智能”的并且认识到项目中没有引用任何 header/.a 文件,因此它不会编译它们?
而且,这是实现原始海报目标的正确方法吗?如何为iOS编译spatialite https://stackoverflow.com/questions/4793970/how-to-compile-spatialite-for-ios?
非常感谢,
特德·S
我也遇到了原始海报的链接器错误,但通过在目标中包含 libsqlite3.dylib、libstc++.dylib 和 libiconv.dylib 解决了它。
希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)