SQLiteの拡張ライブラリ(extension-functions)をVisualStudioでビルドして利用する方法

この記事は公開から3年以上経過しています。

SQLiteのextension-functionsのバイナリを生成する場合、公式ではMinGwのgccを利用することになっていますが、今回はこれをVisualStudio2017のVisualC++を使ってビルドして利用する方法を紹介します。

本記事ではVisualStudio2017のVisualC++64bitビルド(Cコンパイラ)で説明しています。

本記事の対応方法は公式にアナウンスされている方法ではありません。利用にあたっては各自の責任でご判断頂き、十分に注意して利用してください(At your own risk)。

用意するもの

SQLiteの公式ソースのヘッダファイル

  • sqlite3.h
  • sqlite3ext.h

SQLiteへの寄稿ファイルのCソースファイル

  • extension-functions.c

ビルド手順

  1. 上記3ソースを適当なフォルダにまとめて配置する。

  2. extension-functions.cをテキストエディタで開き、int sqlite3_extension_init関数に__declspec(dllexport)を追加(関数をエクスポート)する。

    file

  3. スタートメニューからVS 2017 用 x64 Native Tools コマンド プロンプトを開き、カレントディレクトリを手順1のフォルダに移動する。

  4. 以下のコマンドでDLLをビルドする(※コマンドにバックスラッシュが表示されている場合は半角円マーク記号と見做してください)。

    cl /LD /I .\ .\extension-functions.c
  5. ビルドされたextension-function.dllを任意のフォルダに配置する(SQLite3.dllと同じディレクトリなど)。

ロード方法

以下のSQLコマンドにより前手順でビルドしたSQLite拡張DLLをロードします(フルパスで指定)。
※お使いのSQL実行環境によってはload_extensionの使用を明示的に有効とする設定が必要な場合があります。

select load_extension("DLLのインストール先ディレクトリ\extension-functions.dll");

拡張ライブラリのロードに成功すると

load_extension("DLLのインストール先ディレクトリ\extension-functions.dll")

のように上述のSQL実行結果が返されます。

参考ウェブサイトなど

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする