SQLite公式から
以下をダウンロードして展開
ダウンロードしたら
展開したフォルダの中身をプロジェクトの実行ファイルがある場所に移動してください
移動したらMSVCに移動して開発者コマンドプロンプトを開いてください
開いたら、プロジェクトの実行ファイルがある場所に移動
ここは環境によって変わります。
MSVC2017とか2015とか
"C:/Program Files(x86)/Microsoft Visual Studio/20xx/(Professional | Enterprise | Community)/VC/Tools/MSVC/xxx/bin/Hostx(64 | 86)/x(64 | 86)/lib.exe"
ここのパスをコピー
環境によってx86だったりx64だったりするので変えてください。
さっき開いた、開発者コマンドプロンプトにペーストして
"path" /DEF:sqlite3.def /MACHINE:x64 /OUT:sqlite3.lib
上記を実行
こんな感じになるはず。
sqlite3.lib
が追加されているはずです
ここまでだとMSVCはsqlite3.lib
を見つけられないので、
sqlite3.lib
を作成したときのMACHINE:(x64 | x86)
にあわせてください
これで終わりです。
コード例
#include <iostream> #include "sqlite3.h" int main() { sqlite3* db = nullptr; sqlite3_stmt* stmt = nullptr; const char* db_name = "test.db"; // If use string type, you should be `db_name.c_str()` // string型を使うときは`db_name.c_str()`を使ってください int ret = sqlite3_open(db_name, &db); if (ret != SQLITE_OK) { printf("%s", sqlite3_errmsg(db)); sqlite3_close(db); return 0; } // if type string -> query.c_str() const char* query = "select * from test"; ret = sqlite3_prepare_v2(db, query, -1, &stmt, nullptr); if (ret != SQLITE_OK) { printf("%s", sqlite3_errmsg(db)); sqlite3_finalize(stmt); sqlite3_close(db); return 0; } sqlite3_finalize(stmt); sqlite3_close(db); return 0; }
おまけ(Unreal Engine C++からSQLiteを使う場合)
sqlite3.lib
の生成までは同じです。
生成したらBinaries
ディレクトリに以下を追加
.dll
だけでいいかも?
まぁ何個あってもいいやろの精神で
次に、(なければ)ThirdParty
ディレクトリを作成し、
ThirdParty/sqlite/
のようにディレクトリを作って
Includes
ディレクトリにsqlite3.h
Libraries
ディレクトリにsqlite3.lib
を追加。
次に、ProjectName.build.cs
を開きます。
以下のようにコードを追加してください
using UnrealBuildTool; using System.IO; public class Terrain : ModuleRules { string ThirdPartyPath = "C:\\study\\ProjectName\\ThirdParty"; public Terrain(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); string LibrariesPath = Path.Combine(ThirdPartyPath, "sqlite", "Libraries"); PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "sqlite3.lib")); PublicIncludePaths.Add(Path.Combine(ThirdPartyPath, "sqlite", "Includes")); } }
これでUnreal Engine C++
からも呼び出せるようになりました。
Blueprint
から呼び出せるのかは試してないのでわかりませんが・・・
今回はここまでですありがとうございました。