2011-10-01 12 views
12

私のアプリをiOSにコンパイルするときに問題があります。私はsqlite3のを使用して、輸入してい シミュレータとiOSコンパイルのlibsqlite

#import <sqlite3.h> 

同様に、私は私のMacにlibsqlite3.0.dylibという名前のファイルを見つけて、私は私のプロジェクトにコピー。 iOS Simulator用にコンパイルするとうまくいきます。しかし、iOSデバイス用のアプリケーションをコンパイルしようとすると、実装でsqliteの機能(_sqlite3_openなど)を呼び出すたびにエラー(Apple Match-O Linker Error)がスローされます。

私はiOSデバイスにコンパイルしますか?

ありがとうございました!

答えて

58

の代わりに、単純にライブラリをコピー:

    #import "sqlite3.h"

    の代わりに、

  • in Xcode N avigator、

  • は、それが誰かがいることに直面して念のために/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOSxx.sdk/usr/lib/

+0

さて、それはあなたのヒントとコンパイル!ありがとうございました!!しかし、iPhoneで動作しないアプリケーションは、sqlite3ライブラリを使用するメソッドを呼び出した直後に、アプリケーションが停止してアプリケーションを終了します。シミュレータで正常に動作します...なぜこれ?何か案が? Humm ... Xcode 4.1が示すデフォルトのフォルダからlibsqlite3.dylibを追加しました。 – Ibai

+0

デバイス上でクラッシュログ(オーガナイザ=>デバイス=>デバイスログ)を取得する必要があります –

+0

こんにちはott。さて、私は開発者ライセンスを買う余裕がありません。私はこのiOSプログラミングの世界で趣味として始めています。学生としては、それは私には不可能です。ご理解頂けるとありがたいです。これがクラッシュの原因となる理由が分かっていますか?それはコンパイルされますが、動作しません...ありがとうございます – Ibai

0

あなたのようなsqlite3のライブラリをインポートしようとしました。このようにそれを行う、

#import <sqlite3.h>

+0

それは違いはありません訪問することができ、完全な詳細とサンプルソースコードについては

。 –

1

場所だからlibsqlite3.dylibを追加しLink Binary With Libraries

  • Build Phasesに行くあなたのターゲットに(最大限のエントリ)をクリックします私と同じ問題。コードを単体テストする場合は、libファイルもテスト対象に追加してください。

  • -1

    私がIOSアプリケーションでSQLiteを使用するのに見いだされた最良の方法は、SQLitライブラリの独自のコピーを作成してプロジェクトに組み込むことです。 libsqlite3.0.dylibはSQLiteの非常に古いコピーです。

    SQLite Amalgamationのソースコードを簡単にダウンロードし、IOS用にビルドすることができます。最新のSQLiteソースコードが提供され、最新のバグ修正と改善が行われています。

    Xcodeを開いて新しい静的ライブラリプロジェクトを作成することができれば、そこには75%の方法があります。

    静的ライブラリプロジェクトを作成したら、SQLite AmalgamationからダウンロードしたSQLiteソースを含めて、いくつかのプリプロセッサオプションを設定して最新のコードで実行してください。あなたが私のブログconedogers

    関連する問題