gpt4 book ai didi

c++ - 如何只为两个函数编译openssl

转载 作者:行者123 更新时间:2023-11-30 02:07:25 25 4
gpt4 key购买 nike

我正在尝试使用 openssl 对一个简单的字符串进行编码,而不需要对其进行解密。我正在使用这些功能

AES_set_encrypt_key()
AES_cfb128_encrypt()

我需要我认为只有包括:

 #include <openssl/aes.h>

我无法在网络或 openssl 网站上找到有关如何为 visual studio 项目编译源代码的说明。有谁知道应该怎么做?我可以只编译与这两个功能相关的代码吗?

非常感谢

最佳答案

我知道您想在代码中使用这些函数。您不需要为此编译 OpenSSL。

在您的开发机器上安装包(如果为 Windows 开发,您可以获得最新的安装程序 here )。它将包含您需要包含在代码中的头文件(它们将位于 c:\OpenSSL-Win32\include\openssl),您需要链接应用程序的静态库(在 c:\OpenSSL-Win32\lib\VC) 和您的应用程序需要运行的 DLL(在 c:\OpenSSL-Win32\bin 中)。

因此,在您的代码中您将拥有:

#include <openssl/aes.h>
...
AES_set_encrypt_key(...);
...
AES_cfb128_encrypt(...);
...

您的编译器需要知道您包含的 header 的路径(openssl 目录的路径),因此您需要提供它。如果您使用的是 Visual Studio,请打开项目设置并将 c:\OpenSSL-Win32\include 添加到 Additional Include Directories。

在链接器部分,将 ssleay32MDd.lib;libeay32MDd.lib; 添加到附加依赖项,以便您的链接器知道要查找哪些 OpenSSL 库。这些库的路径 - c:\OpenSSL-Win32\lib\VC - 添加到其他库目录。

小心使用这些库:它们需要链接到与您的应用程序相同的运行时库。它们的后缀告诉您它们链接到哪个运行时库:我上面提到的库具有后缀 MDd,这意味着它们使用多线程调试 DLL (/MDd) - 因此如果您的应用程序使用相同的运行时,您将包括它们(在代码中查看)生成->运行时库设置)。

您的应用程序现在将构建,但要运行它,您的二进制文件将需要访问依赖于它的 OpenSSL DLL libeay32.dll。将该 DLL 复制到系统目录或您运行应用程序的目录,或将路径 c:\OpenSSL-Win32\bin 添加到 Path 环境变量。

关于c++ - 如何只为两个函数编译openssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7901683/

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