因為工作需要,要實現一個基於SSL的通訊程式。之前沒有接觸過SSL協議通訊,這次學習了一下如何自己編譯OpenSSL庫。
我使用的環境是Windows 10 + VS2015
1.首先開啟VS2015的命令列編譯工具,想編譯成32位的就開啟x86版本,想編譯成64位的就開啟x64版本。
2.解壓下載下來的openssl的壓縮包,進入解壓資料夾,輸入命令:perl Configure VC-WIN64A;(32位:VC-WIN32)
3.輸入命令ms\do_win64a;(32位:ms\do_ms)
4.輸入命令nmake –f ms\nt.mak編譯exe,編譯成dll為nmake –f ms\ntdll.mak
5.如編譯成功,可使用nmake –f ms\nt.mak test來測試,dll為nmake –f ms\ntdll.mak test。
配置VS
1.專案->屬性->配置屬性->VC++ 目錄->包含目錄,將openssl資料夾的inc32新增進去;專案->屬性->配置屬性->VC++目錄->庫目錄,新增openssl資料夾下的out32dll;
2.專案->屬性->配置屬性->連結器->輸入->附加依賴項,增加libeay32.lib和ssleay32.lib;
3.將out32dll中的libeay32.dll和ssleay32.dll複製至工程目錄下。
使用例程編譯透過,測試成功
// SSL.cpp : 定義控制檯應用程式的入口點。
//
#include "stdafx.h"
/* OpenSSL headers */
#include "openssl/bio.h"
#include "openssl/ssl.h"
#include "openssl/err.h"
/* Initializing OpenSSL */
int main()
{
SSL_load_error_strings();
ERR_load_BIO_strings();
OpenSSL_add_all_algorithms();
return 0;
}
ps:個人感覺OpenSSL是一個很糟糕的庫,文件混亂,使用體驗也不好