使用VS2010编译openssl-1.0.1g成功
安装openssl步骤:
1、安装ActivePerl//初始化的时候,需要用到perl解释器
2、下载openssl-1.0.1e(openssl-1.0.1g),解压到D:\openssl-1.0.1e
2、使用VS2010下的Visual Studio 2010 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量)
进入 Visual Studio 命令提示(2010) ,首先执行vcvars32,直接切换目录到d:\openssl-1.0.1e下,输入perl configure VC-WIN32,接着输入ms\do_ms
如果使用静态库
输入:nmake -f ms\nt.mak
动态库 输入:nmake -f ms\ntdll.mak
如果编译成功,最后的输出都在out32dll目录下:包括可执行文件、两个dll和两个lib文件:libeay32.dll, libeay32.lib, ssleay32.dll, ssleay32.lib
打开VC-Tools-Options-Directores,在Include files中增加openssl\include目录,将libeay32.lib和ssleay32.lib 复制到工程当前目录中
二、使用OpenSSL
(1)在VC中配置使用以上的函数库:
点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
在"Show directories for:"的"Include files"选项中新增目录"C:\openssl\include";
"Library files"选择中新增目录"C:\openssl\lib"。
然后在需要链接OpenSSL函数库的工程中加入如下两句:
#pragma comment(lib, "ssleay32.lib")
#pragma comment(lib, "libeay32.lib")
其作用是将OpenSSL所需的库导入工程中。
(2)在要编译的源程序中包含以下三个头文件并加入LIB:
#include <openssl/ssl.h>
#include <openssl/err.h>
#include <openssl/bio.h>
#pragma comment(lib, "libeay32.lib")
#pragmacomment(lib, "ssleay32.lib")
三、编译多个版本的openssl
cd 到openssl 目录
把 ms 目录下的 ntdll.mak 和 nt.mak 中 CFLAGS 中的MD 改成 MTD(Debug版本) 或 MT(Rlease版本),如下所示dll: CFLAG= /MD /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy/nologo
dll debug: CFLAG= /MDd /ZI /Od /Ob2 /W3 /WX /Gs0 /GF/Gy /nologo
static: CFLAG= /MT /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy/nologo
static debug: CFLAG= /MTd /ZI /Od /Ob2 /W3 /WX /Gs0 /GF/Gy /nologo
如何在Windows下编译OpenSSL (VS2010使用VC10的cl编译器)
四、附录:在VC中对C/C++ 运行时库不同版本编译指令说明
《在VC中对C/C++ 运行时库不同版本编译指令说明》(http://blog.yesky.com/271/dgkang/1737771.shtml)一文中详细介绍了连接不同版本库的编译指令如下:
C Runtime Library:
/MD MSVCRT.LIB 多线程DLL的Release版本
/MDd MSVCRTD.LIB 多线程DLL的Debug版本
/MT LIBCMT.LIB 多线程静态链接的Release版本
/MTd LIBCMTD.LIB 多线程静态链接的Debug版本
/clr MSVCMRT.LIB 托管代码和非托管代码混合
/clr:pure MSVCURT.LIB 纯托管代码
C++ Standard Library:
/MD MSVCPRT.LIB 多线程DLL的Release版本
/MDd MSVCPRTD.LIB 多线程DLL的Debug版本
/MT LIBCPMT.LIB 多线程静态链接的Release版本
/MTd LIBCPMTD.LIB 多线程静态链接的Debug版本
五 ELSE
1)
测试动态库:
nmake -f ms\ntdll.mak test
测试静态库:
nmake -f ms\nt.mak test
安装动态库:
nmake -f ms\ntdll.mak install
安装静态库:
nmake -f ms\nt.mak install
清除上次动态库的编译,以便重新编译:
nmake -f ms\ntdll.mak clean
清除上次静态库的编译,以便重新编译:
nmake -f ms\nt.mak clean
2)
使用OpenSSL
在VC中配置使用以上的函数库:
点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
在"Show directories for:"的"Include files"选项中新增目录"C:\openssl\include";"Library files"选择中新增目录"C:\openssl\lib"。
然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。