在windows下编译openSSL库

来源:互联网 发布:彩运指彩票分析软件 编辑:程序博客网 时间:2024/06/06 12:32

关于静态链接库和动态链接库

    静态连接库在编译的时候链接到可执行文件中,不以单独的文件存在,不能被外部程序访问

    动态链接库在是以单独文件形式存在,可以被程序外部调用,可以多个进程访问一块内存

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

0 0