C++ 如何在C++;?

C++ 如何在C++;?,c++,visual-c++,cryptography,openssl,C++,Visual C++,Cryptography,Openssl,我正在尝试测试openssl附带的加密库,我从下载了openssl,它包含一个/crypto文件夹,每个加密类型都有子文件夹 我想尝试BioSyfFBase64,所以我创建了一个空控制台应用程序,并添加了所需的内容,还添加了C++ /iCL目录的/BIO和EVP文件夹的路径,还添加了主/ OpenSSL文件夹。p> 当我尝试编译时,我无法打开include文件:“openssl/e_os2.h”:没有这样的文件或目录 但是文件就在那里,我应该以不同的方式使用加密库吗?如何使用它只添加/opens

我正在尝试测试openssl附带的加密库,我从下载了openssl,它包含一个/crypto文件夹,每个加密类型都有子文件夹

我想尝试BioSyfFBase64,所以我创建了一个空控制台应用程序,并添加了所需的内容,还添加了C++ /iCL目录的/BIO和EVP文件夹的路径,还添加了主/ OpenSSL文件夹。p> 当我尝试编译时,我无法打开include文件:“openssl/e_os2.h”:没有这样的文件或目录

但是文件就在那里,我应该以不同的方式使用加密库吗?如何使用它只添加/openssl路径而不添加我使用的所有加密子文件夹


此外,我没有任何.lib文件,从哪里可以获取它们?

您需要的是为Windows构建的OpenSSL版本,而不是源代码版本。我建议从安装一个版本,它有一些很好的.lib文件和头的安装程序。安装后,您必须使用正确的包含路径更新VS项目,以便从安装程序放置标题的位置获取标题。

在windows中,如果您想自己编译,可以运行以下操作:

对于64位:

perl Configure VC-WIN64A
ms\do_win64a.bat
nmake -k -f ms\ntdll.mak
对于32位:

perl Configure VC-WIN32
ms\do_nasm.bat
nmake -k -f ms\ntdll.mak
编译源代码后,标题位于
inc32
文件夹中,而
libs/dll
位于
out32dll
文件夹中


您可以在安装文件中找到更详细的信息。

下载的OpenSSL库包含所有标题,但它们存储为Windows不喜欢的符号链接(Cygwin可以处理它们)。您将希望使用下面的预构建库(参见乔的答案),也可以看到在使用C++时的一些技巧。同样的伎俩也被应用于其他领域。