4

まず、別のスレッド/投稿を参照するために他のプロトコルを使用する場合は、ご容赦ください。

iOS 用に空間ライトをコンパイルする方法の前のスレッドがありました。ここでは、iOS 用の静的ライブラリとして空間ライトを構築することを部分的に説明した回答がありました。回答には次のテキストが含まれていました。

「.a をドラッグ アンド ドロップしたら (両方ともシミュレーターと実際のハードウェアで動作する必要があります)、呼び出すだけで Spatialite を初期化できますspatialite_init(1)。」

これは、次のバージョンに翻訳されていると思いますか?

クロスコード 4

  1. File->New->New Target->iOS->Framework & Library->Cocoa Touch Static Library

  2. ライブラリに名前を付ける - libSpatialite_TedS

  3. ヘッダー ファイルを libSpatialite_TedS にドラッグします -> ヘッダーをコピーします (ここで質問します... 'spatialite2.3.1.zip' ダウンロードの 'headers' ディレクトリに Spatialite.h ファイルがあります。次に、サブディレクトリ 'spatialite' に別のファイルがあります同一のファイルではなく、明らかに必要なspatialite.h.ヘッダーファイルを「ヘッダー」ディレクトリからドラッグし、ディレクトリ「spatialite」をディレクトリとしてXcode静的ライブラリ「myNewLibrary」の「ヘッダーのコピー」領域にドラッグしますか? '?)

  4. 「.a ファイル」 libSPATIALITE2.3.1_arm.a & libSPATIALITE2.3.1_x86.a をドラッグします。

  5. 「Compile Sources」フィールドに、これらのヘッダーと一緒に使用する「.m」ファイルがいくつかあるはずではありませんか?

これで、プロジェクトでを参照せずに、libSpatialite_TedS'Command-B' を押してビルドすると、プロジェクトのビルドが成功します。ただし、コンパイルされた製品を探すと、

/Users/Admin/Library/Developer/Xcode/DerivedData/MyProject-gutnkbwqqonzgxbcmfzzzkadqhid/Build/Products/Release-iphonesimulator

ビルドの製品は表示されますが、libSpatialite_TedS は含まれていません。

これは、コンパイラが「スマート」であり、ヘッダー/.a ファイルがプロジェクトで参照されていないことを認識しているため、それらをコンパイルする必要がないためですか?

そして、これは元のポスターの目的を達成するための正しい方法ですか? iOS 用に空間ライトをコンパイルする方法?

どうもありがとう、テッド・S

4

2 に答える 2

3

元のポスターでもリンカー エラーが発生していましたが、ターゲットに libsqlite3.dylib、libstc++.dylib、および libiconv.dylib を含めることで解決しました。

お役に立てれば!

于 2012-01-16T19:30:17.647 に答える
2

テッド、あなたが説明したように、.a (静的ライブラリ) ファイルとヘッダーは、別の静的ライブラリではなく、すぐにプロジェクトで使用することを意図していると思います。それらはプロジェクトの出力の結果です。それらを構築したプロジェクトをここで見つけることができると思います:

http://lionel.gueganton.free.fr/spatialite/

そして、静的ライブラリ ファイルについてもう少し:

.a (libcrypto.a として) ファイルとは何ですか?

編集済み

参考になる別のリンクを次に示します。iOS での静的ライブラリのビルド プロセスの概要: http://www.icodeblog.com/2011/04/07/creating-static-libraries-for-ios/

于 2012-11-15T23:21:11.747 に答える