【问题标题】:SQLCipher error: sqlite3_key is undefinedSQLCipher 错误:sqlite3_key 未定义
【发布时间】:2015-04-22 15:15:45
【问题描述】:

使用:

sqlite3_key(db, "test123", 7);

抛出一个 ||sqlite3_key 未定义||错误,但我已经添加了 sqlite3.h 文件并且它具有该方法。
我意识到上面有这个提示的评论。

** Specify the key for an encrypted database.  This routine should be
** called right after sqlite3_open().
**
** The code to implement this API is not available in the public release
** of SQLite.


有什么问题?

【问题讨论】:

    标签: encryption console-application sqlcipher


    【解决方案1】:

    您的应用程序可能不包括 CFLAG -DSQLITE_HAS_CODEC 以使 sqlite3_key 在编译时可用,请检查。有关 SQLCipher 构建过程的更多信息,请参阅this 页面。

    【讨论】:

    • 感谢 Nick Parker,但是 .configure 代码在哪个 cmd 中? VisualStudioCommandPromp、cmd 还是 msys.bat?
    • 这些说明特定于从 Linux 或 OS X 而非 Windows 构建 SQLCipher。
    • 那么 Windows 呢?
    • @NickParker 我在 ubuntu 上尝试过使用 sqlcipher。并且使用 pragma 键工作正常。将相同的 CFLAG 用于 sqlite3 直接安装作为 ./configure 的参数是否正确?实际上,我在使用 ./configure CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" 阅读您的评论后尝试过。但现在它给出了对 sqlite3_key_v2 和 sqlite3_rekey_v2 的未定义引用。我必须通过任何其他 CFLAGS 吗?我知道我迟到了,但任何指针/链接/关键字都会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 2021-08-30
    相关资源
    最近更新 更多