プログラミング C++ 関連の技術メモ【SQLite の 活用方法(その3)】

SQLite 技術メモ : ビルド環境準備

 

SQLiteのダウンロードのページにまずいきましょう。

ダウンロードのページの以下を落とします。今回は、64bit版dllを落とすことにします。

ファイルを解凍すると、以下のような感じです。

 

Visual Studioで、コンソールアプリのプロジェクトを新規作成します。

 

本来だと、sqlite3.dllをパスが通るところに置いたり、PATHの設定したりですが、今回は、手っ取り早く、dllファイルをプロジェクトフォルダ内にそのままコピーします。

そんで、ビルド後イベントに、以下のコマンドを設定して、出力フォルダにdllが必ずコピーされるようにしておきます。

xcopy "$(ProjectDir)\*.dll" "$(OutDir)" /i /s /y 

とりあえずビルドしてみて、sqlite3..dllがコピーされていることを確認しましょう。

大丈夫そうですね。

さて、このままでは、SQLiteの機能をC++コードから使えません。関数を呼び出すためにヘッダファイルが必要ですので、再びSQLiteのホームページから、今度はソースコードをダウンロードしましょう。

解答すると以下のような感じです。

フォルダごとどこかにコピーして、インクルードパスを追加しておきましょう。

 

たぶん、プロジェクトに直接ヘッダーファイルを突っ込んでも大丈夫とは思いますが、OSSのファイルを間違って編集したりとかも嫌なので、別フォルダに分けておきます。

 

次にLibを作成します。ツール → Visual Studioコマンドプロンプトを選びます。

Visual Studio 2019以降だと、「コマンドライン」。

 

以下のような感じで、libを作る。環境に合わせてコマンドは変えてください。

lib /machine:x64 /def:C:\Users\youns\source\repos\SQLiteTest\SQLiteTest\sqlite3.def /out:C:\Users\youns\source\repos\SQLiteTest\SQLiteTest\sqlite3.lib

そして、libを追加してあげます。

これで準備は完了です。

 

ちゃんと、ビルドができるか確認してみましょう。とりあえず、テスト的にデータベースをオープンして、クローズするだけのプログラムを作ってみます。

#include <iostream>
#include <sqlite3.h>

int main()
{
    sqlite3 *db = nullptr;
    int ret = sqlite3_open("./test.db", &db);

    if (ret != SQLITE_OK) 
    {
        return -1;
    }

    sqlite3_close(db);

    return 0;
}

 

ビルドして実行してみましょう。以下のように、test.dbが作成されたら成功です。(test.db)ができる場所は、実行場所により異なります。

ここまでくれば、あとは開発していくだけです。次回から、どんどんコーディングをしていきましょう。