如何将 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 项目中的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Crypto++ 库添加到 Qt 项目

按条件将文件包含到 VS2017 c++ 项目中

尝试将 boost.serialization 包含到我的 VS 项目中时遇到问题

如何将C#项目从VS2008迁移到VS2017

如何使用 MinGW 在 Linux 上构建 Crypto++ 库?

将 3rd-party C++ DLL 引用到 VS 2013 项目中