VS2019,如何使用Crypto++
Posted CP3CP4
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2019,如何使用Crypto++相关的知识,希望对你有一定的参考价值。
一、生成lib库
找到crypto项目中的.sln文件,使用vs打开,选到目标平台和模式,分别生成!
二、生成后,将cryptlib.lib另存至vs的lib库下,其中包括release和debug
三、将源代码中的头文件全部拷贝至vs的include文件路径中
四、配置VS
debug-》常规下
代码生成:debug选MTd release下可以选择MT
连接器-》附加库目录
debug下选择debug的lib,release选择release的lib 一定要一一对应!
错误解决
1、无法打开"cryptopp.h"
解决方法:按照上述步骤一一执行即可
2、检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”
解决方法:将对应的lib库在项目文件中添加,需要release对应release模式下生成的,debug也一样!
如何将 Crypto++ 包含到 VS 项目中
【中文标题】如何将 Crypto++ 包含到 VS 项目中【英文标题】:How to include Crypto++ into a VS Project 【发布时间】:2019-01-28 19:09:50 【问题描述】:我正在开发一个使用 CryptoPP 的项目,但是当我尝试编译我的代码时,我总是遇到链接问题。现在我想在这里问如果有人知道如何正确链接它。
我已经试过了:
下载 Crypto++ 打开 SLN构建 cryptlib
将 cryptlib.lib 移至我的项目文件夹
将 Crypto++ 标头包含到我的项目中 将 cryptlib.lib 添加到头文件中。我希望我的项目能够完全编译和链接,没有错误,并且能够运行一些仅用于测试的 AES。
【问题讨论】:
“将 libcrypto.lib 添加到头文件中。” 什么意思? .lib 文件应该添加到项目库文件中,而不是标题中。也许this 有帮助。 强烈建议打开“输出”选项卡(如果您没有移动任何东西,则在 IDE 底部)并将项目完全重建的输出与 @ 一起复制到问题中987654322@。这为我们在互联网领域提供了一些关于您实际遇到的问题的提示。 我在冒险猜测...可能是dynamic C/C++ runtime linking。您应该显示一个典型的编译命令和链接命令,并显示您遇到的一些错误。此外,该库称为cryptlib.lib
。没有libcrypto.lib
。如果你确实链接了libcrypto.lib
,那么它是错误的库。
Windows 内置了出色的CryptoAPI。你真的不需要任何 3rd-party 库...
【参考方案1】:
最好的方法是在您的项目文件夹(.SLN 所在的位置)中创建一个名为 cryptopp 的文件夹,从目录中的cryptopp 克隆或下载源代码。
从[Visual Studio->Solution Explorer]
点击[Solution->Add->Existing Project]
并选择cryptlib.vcproj
文件以包含在您的解决方案中。
你可以在这里找到一个使用cryptopp的项目示例https://github.com/mrc-g/BitMRC
【讨论】:
是的,你是对的,我已经编辑过了,最好静态链接。 OP 也可能需要执行dynamic C++ runtime 转换。这取决于项目的设置方式,但大多数人采用 Visual Studio 默认设置。以上是关于VS2019,如何使用Crypto++的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Crypto++ 中使用 RSA OAEP SHA-256 加密/解密数据