使用mingw.bat编译openssl-1.0.1c生成dll

准备工作:

      1,下载openssl1.0.1c源码http://www.openssl.org/source/openssl-1.0.1c.tar.gz

      2,下载perl,http://downloads.activestate.com/ActivePerl/releases/5.16.1.1601/ActivePerl-5.16.1.1601-MSWin32-x86-296175.msi

      3,下载mingw,http://jaist.dl.sourceforge.net/project/mingw/Installer/mingw-get-inst/mingw-get-inst-20120426/mingw-get-inst-20120426.exe

      4,安装和解压完上面三项后,配置mingw环境变量(perl会在安装过程中能够自动配置),右键点击“我的电脑”,选择“属性->高级系统设置->高级->环境变量”,从系统变量中选中path,点击编辑,在后面添加C:\MinGW\bin(具体安装路径根据自己的实际路径设置)

 

修改一处:

      修改openssl源码中util\pl\Mingw32.pl,添加一行

      $asmtype='gaswin';

      可以放在第10行左右

 

开始编译:

      打开cmd,跳转到openssl-1.0.1c目录,运行ms\mingw32.bat,运行完毕后就可以在当前目录看到dll动态库

 

可能遇到的问题:

      1,Can't open perl script "cryptox86cpuid.pl": No such file or directory
            mingw32-make: *** [tmp\x86cpuid.asm] Error 2

            可以看到是路径中的\字符被忽略掉了,导致该问题的原因可能是环境变量中设置了MinGW\msys\1.0\bin的路径,过段去掉该变量,去掉后问题应该能解决

 

      2,Pick one target type from
                  elf     - Linux, FreeBSD, Solaris x86, etc.
                  a.out   - DJGPP, elder OpenBSD, etc.
                  coff    - GAS/COFF such as Win32 targets
                  win32n  - Windows 95/Windows NT NASM format
                  nw-nasm - NetWare NASM format
                  macosx  - Mac OS X

            遇到该问题,可能是没有修改上方提到的文件,应该在util\pl\Mingw32.pl中添加$asmtype='gaswin';

 

      3,Scalar found where operator expected at util/pl/Mingw32.pl line 11, near "$o"
                     (Missing semicolon on previous line?)
              syntax error at util/pl/Mingw32.pl line 11, near "$o"
              Compilation failed in require at util\mk1mf.pl line 188.

            遇到该问题,是在添加问题2中所描述内容时,没有在添加内容后加分号导致$asmtype='gaswin';

 

      4,out\libcrypto.a(digest.o):digest.c:(.text+0x5df): undefined reference to `OPENSSL_cleanse'
           out\libcrypto.a(rsa_sign.o):rsa_sign.c:(.text+0x1a1): undefined reference to `OPENSSL_cleanse'

           遇到该问题时,不要着急,过段删掉openssl-1.0.1c目录,然后重新解压,别忘了在util\pl\Mingw32.pl中添加$asmtype='gaswin';额

 

        如果遇到上述未提及的问题,欢迎交流。。

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值