如何将 Crypto++ 包含到 VS 项目中
Posted
技术标签:
【中文标题】如何将 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 默认设置。以上是关于如何将 Crypto++ 包含到 VS 项目中的主要内容,如果未能解决你的问题,请参考以下文章
尝试将 boost.serialization 包含到我的 VS 项目中时遇到问题