LoginSignup
2
2

More than 5 years have passed since last update.

Mac OS X + MonoでSystem.Data.SQLiteを動作させる

Posted at

案外ハマる。ハマりどころは3つ

  • System.Data.SQLiteでよく使うスキーマ調査用のsqlite3_column_database_name は、Mac OS X向け標準ビルドのSQLiteに含まれない
  • Monoは今のところ(3.0.3時点)Mac向けに32bitバイナリしか提供していないし、32bitバイナリから64bitビルドされたライブラリのロードは出来ない
  • MonoのDLL検索は(DllMapを定義していない限り)libsqlite3.0.dylibとなる(Windows環境から類推されるlibsqlite3.dylibとかではない。ちなみにサフィックスは .dylib, .dylib.so, .dylib.bundleを探してくれる)

対応方法はこんな感じ。

からソースを拾ってきて展開。

$ ./configure CFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA -m32"
$ make

で得られる.lib/libsqlite3.0.dylib を適当な場所へコピーするか、make installしてよしなにする。

SQLiteのソース読まないと案外気付かないところでハマったハマった(ノ∀`)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2