【方法】VisualStudio调用Openssl库
下载安装地址:
VisualStudio:https://visualstudio.microsoft.com/zh-hans/
OpenSSL:https://slproweb.com/products/Win32OpenSSL.html
注意OpenSSL要使用msi的版本安装,否则可能会出现找不到lib之类的问题。
本例使用版本Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.3.0和Win64 OpenSSL v3.3.1,例子里的路径都需要替换成自己的路径。
添加OpenSSL到环境变量
环境变量→系统变量→Path→添加D:\~\OpenSSL-Win64\bin
使用Win+R调出cmd并使用openssl version查看是否配置成功,如果显示的版本和安装的不同,那应该是在Path中存在优先级更高的openssl路径,可以去删掉或者将自己添加的优先级上移。
VS项目配置OpenSSL
1项目→属性→VC++→包含目录→添加D:\~\OpenSSL-Win64\include
2项目→属性→VC++→库目录→添加D:\~\OpenSSL-Win64\lib
3项目→属性→链接器→输入→附加依赖项→添加libssl.lib;libcrypto.lib;
4项目→属性→链接器→常规→附加库目录→添加D:\~\OpenSSL-Win64\lib\VC\x64\MDd
下面是一些解释:
添加libcrypto.lib文件,在lib目录下有四个该文件,用于不同目的
它们四个的不同点在于:
MD(多线程 DLL 版本)用于 Release 模式。
MDd(多线程 DLL 版本,调试)用于 Debug 模式。
MT(多线程静态版本)用于 Release 静态链接。
MTd(多线程静态版本,调试)用于 Debug 静态链接。
Debug vs. Release 模式:
Debug 模式用于开发和调试,通常带有调试符号,执行速度较慢。
Release 模式用于发布和生产环境,优化代码,执行速度较快。
动态链接 vs. 静态链接:
动态链接(MD 和 MDd):生成的可执行文件较小,因为共享了运行时库,但需要在目标系统上存在相应的 DLL 文件。
静态链接(MT 和 MTd):生成的可执行文件较大,因为所有运行时库都包含在可执行文件中,不需要依赖外部 DLL 文件。