1

現在、SQLite3 で SOCI を使用しています。カスタム拡張機能をデータベース ( http://www.sqlite.org/loadext.html )にロードできるようにするために、ネイティブ SQLite3 関数を呼び出す必要があるという点に到達するまで、すべてが正常に機能していました。私が使用しているコードは次のとおりです。

sqlite3_session_backend* backend;
backend = static_cast<sqlite3_session_backend *>(databaseSession.get_backend());
sqlite_api::sqlite3* db = backend->conn_;
sqlite_api::sqlite3_enable_load_extension(db, 1);

コードの最後の行に到達すると、実行時にセグメンテーション違反が発生します。デバッガーを使用して、バックエンドが返すポインターが有効かどうかを確認しましたが、有効です。他のネイティブ SQLite3 API 関数も呼び出してみましたが、すべてセグメンテーション エラーが発生します。ここで何が欠けていますか?これらは私のコードに含まれています:

#include <soci.h>
#include <soci-sqlite3.h>

sqlite3.h も含めようとしましたが、同じ結果が得られます。私はclang ++を使用しています。何か案は?

4

0 に答える 0