现在的位置: 首页 > 综合 > 正文

windows系统下openssl的编译

2019年01月03日 ⁄ 综合 ⁄ 共 1308字 ⁄ 字号 评论关闭

遇到各种错误,实在考验人的耐性,把整个详细过程写下来,也让其他人好少走弯路。。

1:首先需要perl,安装好perl并将bin添加到系统变量path中

2:接着是C编译器,我电脑中安装了vc 2010,因此就不需要再安装,只需在使用的时候设置相应的环境变量

3:下载最新版的openssl,官网很容易就可以找到了

步骤如下

1:将下载的openssl解压并将里面的文件都剪切到C:\openssl中,当然这个目录没有特殊要求,我这样做只是比较好记

2:打开cmd命令行,进入c:\openssl,执行命令 perl Configure VC-WIN32

3:进入VC安装路径的bin文件中,我的是C:\Program Files\Microsoft Visual Studio 10.0\VC\bin,运行vcvars32,该脚本文件设置了环境变量,但是只在当前dos界面中有效,一旦关闭就无效(这个问题就让我纠结了好久,这一步也涉及了很多关于VC环境的问题,如果想自己在系统变量中修改path进行添加也可以,但是我就遇到各种各样的错,所以还是按上面这个做法吧)

4:返回c:\openssl中,此时可以有三种做法

1) ms\do_nasm

2) ms\do_masm

3) ms\do_ms

但是前两个要下载安装nasm/masm,第三个则不用

所以我使用ms\do_ms,但这个过程又遇到错误

搜了一下,发现有两篇比较靠谱的文章

a) http://stackoverflow.com/questions/10888391/error-link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-inval,提到安装vs 2010 SP1会移除64-bit compliers

b) http://blog.csdn.net/xiaowei_cqu/article/details/18229649,说是因为采用incremental linking(增量式链接)导致的

解决方法有两个

a) Project(项目)->Properties(属性)->Linker(连接器)->Gerneral(常规)->Enable Incremental Linking(启动增量链接),把 Yes (/INCREMENTAL) 改为 No (/INCREMENTAL:NO) 即可。

b) 安装VS 2010 SP1

我选择的是安装VS 2010 SP1,虽然花的时间比较长,但是因为这个项目不是在IDE环境下编译的,所以我也不知道去哪修改那个属性,就放弃了第一种

最后一步安装openssl:

nmake -f ms\ntdll.mak install

之后就编译成功动态库,输在在out32dll文件夹中,包括可执行文件,dll文件以及lib文件等

有关各种平台的安装说明文档其实也挺详细的,可以参考一下,比如在windows x86系统下的说明文件是"INSTALL.W32",直接拖到浏览器中即可打开

另外,如果只是使用openssl,也可以直接到http://www.slproweb.com/products/Win32OpenSSL.html下载安装包

抱歉!评论已关闭.