自己動手編譯OpenSSL庫

Ox9A82發表於2016-08-22

因為工作需要,要實現一個基於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是一個很糟糕的庫,文件混亂,使用體驗也不好

相關文章