我目前正在将 SOCI 与 SQLite3 一起使用。一切正常,直到我需要调用本机 SQLite3 函数才能将自定义扩展加载到我的数据库中(http://www.sqlite.org/loadext.html)。这是我正在使用的代码:
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++。有任何想法吗?