gpt4 book ai didi

编译 sqlite 合并以获取用户身份验证会引发错误 C2129 和 C1083

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:00 25 4
gpt4 key购买 nike

我想编译 sqlite 合并来创建一个数据库,该数据库通过用户身份验证受密码保护。

我遵循了本教程:https://www.sqlite.org/howtocompile.html还有 SQLite 的 user_authentication 文档:https://www.sqlite.org/src/doc/trunk/ext/userauth/user-auth.txt

当我尝试在不使用额外的编译时选项“-DSQLITE_USER_AUTHENTICATION”并且不添加其他文档的情况下编译它时,它可以正常工作。当我尝试编译它时,我在 sqlite.c 中得到错误 C2129,在 userauth.c 中得到错误 C1083

在这个目录中有以下文件:

  • shell.c
  • sqlite3.c
  • sqlite3.h
  • sqlite3ext.h
  • sqlite3userauth.h
  • userauth.c
cl -DSQLITE_USER_AUTHENTICATION shell.c sqlite3.c userauth.c -Fesqlite3.exe

以下输出:

shell.c
sqlite3.c
sqlite3.c(222878): error C2129: static function 'void sqlite3CryptFunc(sqlite3_context *,int,sqlite3_value **)' declared but not defined
sqlite3.c(16263): note: see declaration of 'sqlite3CryptFunc'
userauth.c
userauth.c(26): fatal error C1083: Cannot open include file: 'sqliteInt.h': No such file or directory
Generating Code...

如果在 c 中有类似 C# 的 db.SetPassword("MyPW") 之类的东西,那将是完美的!

最佳答案

I followed [...] the documentation by SQLite for the user_authentication: https://www.sqlite.org/src/doc/trunk/ext/userauth/user-auth.txt

嗯,不,它看起来不像你做的。那些文档说

Activate the user authentication logic by including the ext/userauth/userauth.c source code file in the build and adding the -DSQLITE_USER_AUTHENTICATION compile-time option. The ext/userauth/sqlite3userauth.h header file is available to applications to define the interface.

When using the SQLite amalgamation, it is sufficient to append the ext/userauth/userauth.c source file onto the end of the amalgamation.

您正在使用合并,因此您应该附加 [内容] userauth.c 到合并。即把它的内容复制到sqlite3.c的末尾。从您的目录列表和命令行来看,您似乎是在尝试将其构建为单独的源文件,最后链接到主文件。这不是等效的,特别是在对 static 函数和变量的范围的影响方面有所不同,这正是您的编译器所提示的。

不清楚 -DSQLITE_USER_AUTHENTICATION 是否也应该与合并一起使用。 SQLite 文档的字面阅读表明不是,但我倾向于猜测,如果您想启用该功能,它实际上是必需的。

有关缺少 header 的错误有点令人担忧,您可能会再次看到它。如果这样做,只需删除或注释掉相应的 #include 指令就足够了,因为来自该 header 的所有必需声明(主要来源之一)应该已经包含在合并中.

关于编译 sqlite 合并以获取用户身份验证会引发错误 C2129 和 C1083,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56990702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com