Openssl苦本人久矣,遂决定记录在Visual Studio 2022中调用openssl外部库的流程。
1.VS的安装与下载
本人是在应用商店下载的。
官网下载地址:
https://visualstudio.microsoft.com/zh-hans/downloads/
推荐博客:Visual Studio下载安装教程(非常详细)从零基础入门到精通,看完这一篇就够了_visual studio安装教程-CSDN博客
2.Openssl的安装与编译
这里本人采用下载源码自行编译的方式,因为直接下载的gcc编译的文件无法使用,VS里面一直显示"not found",故只好采用自行编译的方式。
大概花了半天时间编译成功(因为确实很多文件)
详情请见本人另一篇博客(还没来得及写,事后补上吧)
3.VS项目创建
启动VS
创建新项目
选择控制台应用:
设置项目存放位置与名称后创建
4.Openssl库的链接
右键项目-属性
VC++目录-包含目录 加入include路径,这里编译完成后默认为:
C:\Program Files\OpenSSL\include
VC++目录-库目录 加入lib路径
C:\Program Files\OpenSSL\lib
在C/C++-预处理器里添加2个定义:CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;
这个是用于解决编译代码是出现警告的问题,不加也可以正常运行代码。
链接器-输入-附加依赖项:libssl.lib;libcrypto.lib;
这里建议把C:\Program Files\OpenSSL\bin目录下的相应文件,放在与项目文件相同的文件夹中,不然找不到。(这里如果有不放在相同文件夹里也能找的方法,欢迎在评论区分享)
测试代码如下:
#pragma comment(lib, "libssl.lib")
#pragma comment(lib, "libcrypto.lib")
//此处应该也能导入外部库,但本人为确保万无一失,都弄了
#include <iostream>
#include <stdio.h>
#include "openssl/ssl.h"
int main()
{
SSL_CTX* ctx = NULL;
const SSL_METHOD* meth = NULL;
OpenSSL_add_ssl_algorithms(); // 初始化
SSL_load_error_strings(); // 为打印调试信息作准备
meth = TLS_client_method(); // 采用什么协议(SSLv2/SSLv3/TLSv1)在此指定
ctx = SSL_CTX_new(meth);
printf("%X\n", ctx);
return 0;
}
然后生成解决方案,正在编译运行就可以啦!
版权归原作者 Zero_Dot_Nine 所有, 如有侵权,请联系我们删除。