DRYな備忘録

Don't Repeat Yourself.

【エラー】Undefined symbols: "_sqlite3_column_int", referenced from: ほげほげ【Xcode】

問題

年の瀬だしiOSアプリつくるじゃないですか。使いたいじゃないですかSQLite3。使うんですよ、#import <sqlite3.h>とかして。

で、ビルドしたらこれだよ...orz

Undefined symbols for architecture i386:
  "_sqlite3_column_int", referenced from:
      -[DBTestUnkoDatabase unkoInfos] in DBTestUnkoDatabase.o
  "_sqlite3_column_text", referenced from:
      -[DBTestUnkoDatabase unkoInfos] in DBTestUnkoDatabase.o
  "_sqlite3_finalize", referenced from:
      -[DBTestUnkoDatabase unkoInfos] in DBTestUnkoDatabase.o
  "_sqlite3_open", referenced from:
      -[DBTestUnkoDatabase init] in DBTestUnkoDatabase.o
  "_sqlite3_prepare_v2", referenced from:
      -[DBTestUnkoDatabase unkoInfos] in DBTestUnkoDatabase.o
  "_sqlite3_step", referenced from:
      -[DBTestUnkoDatabase unkoInfos] in DBTestUnkoDatabase.o

f:id:otiai10:20131226135055p:plain

ちゃんとimportしてる気がするんだけどな...

原因

.xcodeprojファイルのLinked Frameworks and Librariesで、明示的に「sqliteね!これ使いますからね!」を指定しなければならない

解決

  1. 左のファイル一覧から、.xcodeproject(ファイル名がプロジェクト名のやつ)を選択
  2. General項目の一番下にあるLinked Frameworks and Librariesで、+を選択
  3. sqlite3.0.dylibを検索、選択してAddする

f:id:otiai10:20131226133436p:plain

f:id:otiai10:20131226133726p:plain

ビルド!

Build Succeeded!!

f:id:otiai10:20131226133756p:plain

イェァ!!!!!( ゚Д゚)b

DRY