1.下载openssl代码,下载地址:http://www.openssl.org/source/ ,如果使用winrar解压失败的话(提示不能创建符号链接),可以关闭UAC。
2.下载安装ActivePerl,下载地址:http://www.activestate.com/activeperl
3.从Windows开始菜单运行“Visual Studio Command Prompt (20xx)”
4.进入openssl目录,例如 E:\openssl-1.0.1e,执行以下命令:

编译X86
E:\openssl-1.0.1e>perl Configure VC-WIN32 --prefix=E:\openssl-1.0.1e
E:\openssl-1.0.1e>ms\do_ms
E:\openssl-1.0.1e>nmake -f ms\nt.mak
此时会产生一个out32目录,里面就是想要的东西。

注意:
以上是将openssl编译为静态链接的lib文件。如需编译为dll,最后一个命令改成
D:\openssl-1.0.1e>nmake -f ms\ntdll.mak
然后会生成out32dll里面

需要生成debug版本就使用
perl Configure debug-VC-WIN32 --prefix=E:\openssl-1.0.1e

编译X64
64位AMD版本(需要64位Visual Studio Command Prompt (20xx)):
E:\openssl-1.0.1e>perl Configure VC-WIN64A --prefix=E:\openssl-1.0.1e
E:\openssl-1.0.1e>ms\do_win64a

编辑ms/nt.mak (或者ms/ntdll.mak),修改输入目录:
# The output directory for everything intersting
OUT_D=out64
# The output directory for all the temporary muck
TMP_D=tmp64
# The output directory for the header files
INC_D=inc64
INCO_D=inc64/openssl

E:\openssl-1.0.1e>nmake -f ms\nt.mak

64位AMD debug版本:debug-VC-WIN64A(需要重新编辑nt.mak,改为out64.dbg之类)
其实你在ms\do_*的时候是会修改*.mak文件的。

VC2015编译的问题

可能会因为你的sdk路径包含问题,提示找不到windows.h之类的头文件,此时需要修改环境变量,增加INCLUDE和LIB

INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\shared;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\ucrt

LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\ucrt\x86

64位的话需要删除前面的重新设置过!

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10586.0\ucrt\x64

用完可以删除环境变量,其实应该在mak文件里面编辑下就可以了,但是我不知道怎么改,懂得人麻烦留下言

如果之前用以前的vs版本编译过的话,需要清理临时文件,obj之类的

如果汇编版本编译失败的话

禁用汇编

配置时用 perl Configure VC-WIN32 no-asm

生成makefile时用 ms\do_nasm

其它
参考:http://blog.csdn.net/boise/article/details/5627191 (如何编译openssl x64)
或者直接下载 win32-openssl(个人觉得比较坑爹)
下载页面:http://slproweb.com/products/Win32OpenSSL.html
注意选择开发者版本还是使用者版本。安装之前需要Vc2008运行库,不管你有没有安装高版本的运行库。

OpenSSl编译的更多相关文章

  1. openssl编译时!遇见的问题

    openssl编译: 1.编译静态库 ./config --prefix=/root/openssl/soft make 2.编译动态库 ./config --prefix=/root/openssl ...

  2. Qt开发笔记:OpenSSL库介绍、windows上mingw32版本的OpenSSL编译模块化

    前言   Windows上mingw32版本的openssl的编译是属于比较棘手的,OpenSSL本身不提供支持..   OpenSSL 介绍   OpenSSL是一个开放源代码的软件库包,应用程序可 ...

  3. libcurl库openssl编译

    openssl编译 win32: perl Configure  no-shared VC-WIN32 --prefix=E:/lib/openssl-1.1.1 linux: ./config -f ...

  4. curl+openssl编译

    curl不支持openssl的静态库,所以编译openssl的时候,应该加上shared 参数,记录一下我亲手编译的参数: ./configure --prefix=/usr/local/openss ...

  5. openssl编译(VC6.0)

    官网:http://www.openssl.org/ 得到源码: git clone  https://github.com/openssl/openssl 一.用vc编译器编译: 1.下载nasm: ...

  6. linux 下 openssl 编译和交叉编译

    此随便记录一下编译openssl时遇到的各种问题以及解决办法. 点击此处下载 OpenSSL(version-1.0.1e) linux 64位系统编译32位版本: setarch i386 ./Co ...

  7. windows下openssl编译

    昨晚,在编译rabbitmq-c时,使用cmake生成vs项目文件时遇到下列错误: CMake Error at C:/Program Files/CMake/share/cmake-3.6/Modu ...

  8. openssl编译安装-各种蛋疼

    arm平台  ubuntu Linux xxxxxx 3.0.62 #2 PREEMPT Tue Apr 2 20:14:12 CST 2013 armv7l armv7l armv7l GNU/Li ...

  9. ubuntu下安装 openssl&&编译运行测试代码

    检查是否已安装 openssl: sudo apt-get install openssl 如果已安装执行以下操作:sudo apt-get install libssl-devsudo apt-ge ...

随机推荐

  1. [转载]VIM命令合集

    Vim命令合集 http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 命令历史 以:和/开头的命令都有历史纪录, ...

  2. 犯罪团伙 codevs 3554

    这是一道经典的水题,提供两种方法:①深搜  ②并查集 NO.1 深度优先搜索: #include<iostream>#include<cstdio>#include<al ...

  3. c++11-bind的用法

    bind函数 在c++11之前,要绑定某个函数.函数对象或者成员函数的不同参数值需要用到不同的转换器,如bind1st.bind2nd.fun_ptr.mem_fun和mem_fun_ref等.在c+ ...

  4. Oracle11g R2学习系列 之八高级数据类型

    所谓的高级数据类型,就是大数据类型,即BCNB(助记词:BC牛逼)+XML数据类型. B:blob,用来存储可变长度的二进制数据. C:clob,主要用来存储可变长度的字符型数据,也就是其他数据库中提 ...

  5. JavaScript语法学习笔记

    1.关于执行JavaScript代码的方法: 第一种方法是将JavaScript代码放到文档<head>标签中的<script>标签之间: <head>     & ...

  6. [转发]Gulp开发教程(翻译)

    Building With Gulp =================== 转载出处 原文地址 翻译出处 对网站资源进行优化,并使用不同浏览器测试并不是网站设计过程中最有意思的部分,但是这个过程中的 ...

  7. python bottle使用多个端口(多个进程)提高并发

    我的程序是用python结合bottle框架写的,但bottle自带wsgi原本只是单进程单线程运行模式(Bottle 默认运行在内置的 wsgiref 服务器上面.这个单线程的 HTTP 服务器在开 ...

  8. 环形队列C++实现

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang 以下鄙人用C++实现了环形队列 /******************************** ...

  9. python安装setuptools和pip

    今天需要写一个python导出excel的小程序.这里需要用到XlsxWriter模块,但是这个模块并没有安装,所以需要先下载该模块,然后才能在程序中使用.这里就需要安装模块,我选择使用pip.以下就 ...

  10. linux安装xunsearch

    首先要确保ubuntu安装了gcc g++ make sudo apt-get install make gcc g++ 然后安装zlib,用来解压的: apt-get install zlib1g- ...