在 Qt 中编译植物样本示例时出错
Posted
技术标签:
【中文标题】在 Qt 中编译植物样本示例时出错【英文标题】:Error while compiling botan sample example in Qt 【发布时间】:2012-08-10 10:30:08 【问题描述】:我试图找出错误两天,但仍然没有弄清楚这个未知原因。
我已经配置并编译了 Botan 库。一切正常,但是当尝试编写要运行的示例代码时..
S2K* s2k = get_s2k("PBKDF2(SHA-256)");
s2k->set_iterations(4049);
SecureVector<byte> key_and_IV = s2k->derive_key(48, passphrase).bits_of();
SymmetricKey key(key_and_IV, 32);
它显示错误:“class Botan::PBKDF”没有名为“set_iterations”的成员
我该如何解决这个问题?
【问题讨论】:
我不使用 Botan 库,但查看the documentation,似乎get_s2k()
已被get_pbkdf()
弃用。您使用的是什么版本的库?
我正在使用当前的稳定版本 1.10....我应该使用旧版本吗??
【参考方案1】:
v1.11.1 的 Botan 文档报告说函数 get_s2k()
已被弃用,建议您改用 get_pbkdf()
。
根据文档,get_sdk(algospec)
只返回调用 get_pbkdf(algo_spec)
的结果,这将为您提供指向 class
Botan::PBKDF
实例的指针。
首先,您的代码需要更像:
PBKDF *s2k = getpbkdf("PBKDF2(SHA-256)");
不幸的是,我不知道你想用s2k
做什么,因为文档没有引用PBKDF
的公共成员函数set_iterations()
。您收到您提到的错误,因为Botan::PBKDF
确实没有名为set_iterations
的成员。您需要阅读文档,了解 set_iterations()
在您现在已弃用的示例中的用途,以及如何在较新版本的库中实现该目的。
【讨论】:
您能否将我们链接到您找到示例代码的位置?这可能有助于阐明:)【参考方案2】:您可能错过了您的库标题...正如您的错误消息所说:“没有名为...的成员...”
【讨论】:
以上是关于在 Qt 中编译植物样本示例时出错的主要内容,如果未能解决你的问题,请参考以下文章
使用 PostgreSQL 编译静态 Qt 5.10.0 时出错