4

libsqlite3.dylibを使用していますが、プロジェクトのコンパイル時に次のエラーが発生します。

ld: warning: ignoring file /Users/dcdmc/Documents/Beginning iPhone 5 Dev/Persistence copy/libsqlite3.dylib, 
             missing required architecture i386 in file
Undefined symbols for architecture i386:

"_sqlite3_open", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_close", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_exec", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o

"_sqlite3_prepare_v2", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_step", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_column_int", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o

"_sqlite3_column_text", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o

"_sqlite3_finalize", referenced from:
  -[OJViewController viewDidLoad] in OJViewController.o
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_bind_int", referenced from:
  -[OJViewController applicationWillResignActive:] in OJViewController.o

"_sqlite3_bind_text", referenced from:
  -[OJViewController applicationWillResignActive:] in OJViewController.o

ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

4 に答える 4

10

まず、バックアップを取り、このフレームワークをルートディレクトリのプロジェクトフォルダに物理的にコピーしたかどうかを確認します。そこにある場合は、そこから削除して、後で再構築します。お役に立てば幸いです。

于 2012-06-19T12:44:38.033 に答える
1

シミュレーターをターゲットにしていますか?

問題は次のとおりです。

  1. iOSシミュレータ用にコンパイルする場合、アーキテクチャはi386です。
  2. iOSデバイス用にコンパイルする場合、archはarmv6/armv7です。

プロジェクトには、i386コードを含まないダイナミックライブラリが含まれています。

ライブラリはSQLiteなので、ダイナミックライブラリとして含めないことをお勧めします。代わりに、ソースコードをプロジェクトに直接含めます(sqlite.cとsqlite.hの2つのファイルのみです)。sqliteのソースコードはhttp://www.sqlite.orgからダウンロードできます。

于 2012-06-19T12:51:27.967 に答える
0

クラスでsqlite操作の前に使用するこれを含めます

#include <sqlite3.h>
于 2012-06-19T12:37:26.443 に答える
0

私はiOS開発に非常に慣れていませんが、Apressの本「BeginningiOS 6 Development」を読み、第13章で非常によく似た問題に遭遇しました。(YourProjectName)のproject.pbxprojファイルを開くにはTextmateを使用する必要がありました。 xcodeprojファイルを作成し、「LIBRARY_SEARCH_PATHS」を削除します。2つの異なる行があります。1つはデバッグビルド設定で、もう1つはリリースビルド設定です。これが誰かに役立つことを願っています。

于 2013-04-26T16:02:27.690 に答える