关于静态链接库和动态链接库
静态连接库在编译的时候链接到可执行文件中,不以单独的文件存在,不能被外部程序访问
动态链接库在是以单独文件形式存在,可以被程序外部调用,可以多个进程访问一块内存
prepare:
1)安装visual studio 2005
2)安装ActivePerl, 官方网站:http://www.activestate.com/activeperl/
3)下载openSSL源代码, 官方网站:http://www.openssl.org/source/
编译:
1)使用VS2005下的Visual Studio 2005 Command Prompt进入控制台模式 开始菜单->所有程序->Microsoft->Microsoft Visual Studio 2005->Visual Studio Tools->Visual Studio 2005 Command Prompt 2)进入openssl源码的目录 命令行键入 cd D:/openssl-0.9.8l 3)命令行键入 perl configure VC-WIN32(需要安装好ActivePerl) 4)命令行键入
ms/do_ms.bat perl util/mkfiles.pl 1>MINFO perl util/mk1mf.pl no-asm VC-WIN32 1>ms/nt.mak perl util/mk1mf.pl dll no-asm VC-WIN32 1>ms/ntdll.mak perl util/mk1mf.pl no-asm VC-CE 1>ms/ce.mak perl util/mk1mf.pl dll no-asm VC-CE 1>ms/cedll.mak perl util/mkdef.pl 32 libeay 1>ms/libeay32.def perl util/mkdef.pl 32 ssleay 1>ms/ssleay32.def
这中间我遇到了两处报告%OSVERSION% is not defined at util/pl/VC-32.pl line 57.和Compilation failed in require at util/mk1mf.pl line 151. 可以忽略,我编译成功了.
5)(1) 编译OpenSSL动态库:命令行键入 nmake -f ms/ntdll.mak 编译成功课在文件夹out32dll里面查看输出的文件,包括应用程序的exe文件、lib文件、dll文件。 (2) 编译OpenSSL静态库:命令行键入 nmake -f ms/nt.mak 编译成功课在文件夹out32里面查看输出的文件,包括应用程序的exe文件、lib文件。
到此编译已经完成,将OpenSSL下的include文件夹、lib文件、dll文件考出,需要用的时候包含进去即可
另外还有几个命令:
测试OpenSSL动态库:nmake -f ms/ntdll.mak test 测试OpenSSL静态库:nmake -f ms/nt.mak test 安装OpenSSL动态库:nmake -f ms/ntdll.mak install 安装OpenSSL静态库:nmake -f ms/nt.mak install 清除上次OpenSSL动态库的编译,以便重新编译:nmake -f ms/ntdll.mak clean 清除上次OpenSSL静态库的编译,以便重新编译:nmake -f ms/nt.mak clean