openssl windows 下 编译 bat
++++全部++++++++
@echo off
rem set sslpath=C:\0openssl\
rem echo %sslpath%
set X86_lib=C:\0openssl\32\lib\src
set X86_lib_o=C:\0openssl\32\lib\out
set X86_dll=C:\0openssl\32\dll\src
set X86_dll_o=C:\0openssl\32\dll\out
set X64_lib=C:\0openssl\64\lib\src
set X64_lib_o=C:\0openssl\64\lib\out
set X64_dll=C:\0openssl\64\dll\src
set X64_dll_o=C:\0openssl\64\dll\out
set /p type=请输入编译类型0-X86_lib 1-X86_dll 2-X64_lib 3-X64_dll :
echo "++++++++++++++++++++++++++++++++++X86_lib"
if %type% == 0 (
rem 目录复制
rd /s /q %X86_lib%
mkdir %X86_lib%
xcopy D:\opensslSRC %X86_lib% /e/s
rem 环境配置--- 注意VS2010与.net4.5冲突 生成dll 需要修改
rem 参照 https://www.cnblogs.com/20170722-kong/articles/9141952.html
D:
cd "D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin"
call vcvars32.bat
c:
cd c:\
cd %X86_lib%
perl Configure VC-WIN32 no-asm --prefix=%X86_lib_o%
rem 生成
call ms\do_ms.bat
rem 语句无效
rem call ms\do_win32
rem nt 编译为lib
nmake -f ms\nt.mak
rem nmake -f ms\nt.mak test
nmake -f ms\nt.mak install
) else (
echo "........................................X86_lib.")
echo "++++++++++++++++++++++++++++++++++X86_dll"
if %type% == 1 (
rem 目录复制
rd /s /q %X86_dll%
mkdir %X86_dll%
xcopy D:\opensslSRC %X86_dll% /e/s
rem 环境配置--- 注意VS2010与.net4.5冲突 生成dll 需要修改
rem 参照 https://www.cnblogs.com/20170722-kong/articles/9141952.html
D:
cd "D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin"
call vcvars32.bat
c:
cd c:\
cd %X86_dll%
perl Configure VC-WIN32 no-asm --prefix=%X86_dll_o%
rem 生成
call ms\do_ms.bat
rem 语句无效
rem call ms\do_win32
rem nt 编译为lib
nmake -f ms\ntdll.mak
rem nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak install
) else (
echo "........................................X86_dll.")
echo "++++++++++++++++++++++++++++++++++X64_lib"
if %type% == 2 (
rd /s /q %X64_lib%
mkdir %X64_lib%
xcopy D:\opensslSRC %X64_lib% /e/s
D:
cd "D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64"
call vcvars64.bat
c:
cd c:\
cd %X64_lib%
perl Configure VC-WIN64A no-asm --prefix=%X64_lib_o%
call ms\do_ms.bat
call ms\do_win64a
rem nt 编译为lib
nmake -f ms\nt.mak
rem nmake -f ms\nt.mak test
nmake -f ms\nt.mak install
) else (
echo "........................................X64_lib.")
echo "++++++++++++++++++++++++++++++++++X64_dll"
if %type% == 3 (
rd /s /q %X64_dll%
mkdir %X64_dll%
xcopy D:\opensslSRC %X64_dll% /e/s
D:
cd "D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64"
call vcvars64.bat
c:
cd c:\
cd %X64_dll%
perl Configure VC-WIN64A no-asm --prefix=%X64_dll_o%
call ms\do_ms.bat
call ms\do_win64a
rem nt 编译为lib
nmake -f ms\ntdll.mak
rem nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak install
) else (
echo "........................................X64_dll.")
pause
------------------全部------------------
make_openssl32.bat -----------
D:
cd D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\
call vcvars32.bat
c:
cd c:\
cd openssl-1.0.2g
perl Configure VC-WIN32 no-asm --prefix=C:\openssl-1.0.2g\win32
call ms\do_ms.bat
call ms\do_win32
rem nt 编译为lib
nmake -f ms\nt.mak
rem ntdll.mak编译为dll
rem nmake -f ms\ntdll.mak
rem nmake -f ms\nt.mak test
nmake -f ms\nt.mak install
pause
make_openssl64.bat --------
D:
cd D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\
call vcvars64.bat
c:
cd c:\
cd openssl-1.0.2g
perl Configure VC-WIN64A no-asm --prefix=C:\openssl-1.0.2g\win64
call ms\do_ms.bat
call ms\do_win64a
rem nt 编译为lib
nmake -f ms\nt.mak
rem ntdll.mak编译为dll
rem nmake -f ms\ntdll.mak
rem nmake -f ms\nt.mak test
nmake -f ms\nt.mak install
pause
参考网址 及 原文:
https://bbs.csdn.net/topics/392193545?page=1
本人同样也是刚刚接触openssl,看到一个安装教程就直接上手,结果走了很多弯路。建议大家多看些资料再安装,出现问题不要急着放弃,在网上去查一下问题代码,一个一个解决。阅读网上分享出来的安装教程,大家都是安装了好几次,耗时几天。我也是在查阅很多资料,耗时很久才安装成功,所以,也把我安装的过程分享出来。供大家参考,有什么不足,不对的地方欢迎大家指正。
(PS:如果你想看看原始的INSTALL文件,那么请打开OpenSSL的解压缩目录,下面有两个文件INSTALL.W32和INSTALL.W64,用记事本方式打开,你可以看到详细的关于安装的解释)
——>有同学就直接安装成功。
1.下载ActivePerl 5.24.1
下载网址:https://www.activestate.com/activeperl/downloads

2.安装ActivePerl软件:
一步一步安装即可。上面有选择添加到环境变量,安装成功后,还需再设置环境变量。
例如我将ActivePerl安装在C:\Perl64\目录下,则选中Path,单击编辑按钮,将C:\Perl64\site\bin;C:\Perl64\bin;加入其中,确认即可。(个人建议安装到C盘,后续好操作)

如何确认安装成功,运行cmd,输入perl -v,然后回车,出现下面显示内容,就是成功的
3.安装Microsoft Visual Studio 2010
Microsoft visual_studio_2010_professional软件安装包http://pan.baidu.com/s/1o6SsDn0
当然其他版本的也可以。这个软件比较大,安装所需的时间也比较长,耐心点,一步一步安装即可。

将C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64;加入系统环境变量(系统在Path路径中可能已添加C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin,如果没有就添加上),
具体以你安装的路径为准
4.安装NASM
(有的没有安装该软件也能成功,个人建议安装)
地址:http://www.nasm.us/
当前稳定版本为:2.12.02
http://www.nasm.us/pub/nasm/releasebuilds/2.12.02/win64/

然后安装,并将其安装路径加入到到系统环境变量Path中.例如:C:\Users\lenovo\AppData\Local\NASM
5.下载OpenSSL
地址:http://www.openssl.org/source/

下载后,将其解压缩至自己的目录下,建议在C盘不含中文名和空格的目录下,这样做便于后续操作。例如我C:\openssl
6.初始化编译环境
打开所有程序,找到在Visual Studio Tools文件夹下的Visual Studio x64 Win64命令提示(2010)工具
这里使用的是在Visual Studio Tools文件夹下的Visual Studio x64 Win64命令提示(2010)工具。

进入Visual Studio 2010安装目录 C:\Program Files (x86)\Microsoft Visual Studio 10.0\中
执行命令:cd C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
执行命令:vcvars64.bat

7. 执行configure
首先将命令指向你的openssl目录下,(这就是将Openssl放到C盘或者说将VS2010与其放在一个盘就好操作些)

也可以直接cd到:cd C:\openssl
进去后
接着实现命令:perl Configure VC-WIN64 no-asm --prefix=C:\openssl
(因为openssl其安装到C:\openssl,按照你的存储路径去写后面的路径)
另外:当你下载的openssl是高版本的话,如openssl-1.0.2g,需要在这里加上no-asm,表示不使用汇编,如果你不加上的话,在执行nmake命令时会出错。但是如果下载是openssl-1.0.1c,貌似不用加no-asm也可以成功。
血的教训,在这一步没有操作正确,一直在后续的nmake中出错,找不到原因,几乎都要放弃。
说多了都是泪!!!
这块大家配置的命令多少有出入:1、 perl Configure VC-WIN64A
2、perl Configure VC-WIN64A --perfix=C:\openssl\win64 (还是其存储路径)
这两种我都没有成功,但我上述的命令不成功时,各位可以试试这两个。

配图命令是32位的,当时忘记截图了,但结果是基本一致的。

成功截图(这也是32位的,基本一致)
这时候可能有出现这个问题:
It looks like you don't have either nmake or dmake.exe on your path

这个问题也是困扰了我好久,查了很多资料和方法都不起作用,最后,在一个帖子的帮助下完成的。如果出现相同问题可以参考。
http://www.cnblogs.com/emanlee/archive/2012/08/11/2633849.html
8.执行 ms\do_nasm
输入命令:ms\do_nasm
当时没有想着会成功并没有截图,这里也很有可能出现NAMKE: fatal error u1077……,返回代码“0x43”等等的错误,这时候就是我前面第7步提到的问题,困扰了很久,这里就不在赘述,如果出现问题,参见上面第7步。

大体上是这样。
9.执行“ms\do_win64a”
输入命令:ms\do_win64a
忘记截图!
[b]10.环境再次配置[/b]
将命令提示符定位到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64 (VS2010安装位置), 然后输入 vcvars64.bat,会显示Setting environment for using Microsoft Visual Studio 2010 x64 tools. 如果没有这一步,下一步会提示nmake不是内部或外部命令。
前面已经配置过,这里不配置有的可以成功,有的则不行,具体原因还不清楚,建议在设置一次。
11.执行 nmake -f ms\nt.mak(这是静态库,后有动态库说明)
再次将命令提示符定位到,也就是cd到C:\openssl(也就是回到openssl源码目录下)
输入命令:nmake -f ms\nt.mak ;
执行完后会在openssl-1.0.1g目录下生成out32和tmp32两个文件夹,out32文件夹中会生成两个静态库和一些执行文件,tmp32文件夹中会生成相应的汇编文件。

12.执行、测试:nmake -f ms\nt.mak test
输入命令: nmake -f ms\nt.mak test;
检查上一步编译是否成功,如果成功则最后显示“passed all tests”字样

13.执行命令:nmake -f ms\nt.mak install
成功则会在C:\openss\win64目录下生成bin、include、lib、ssl四个文件夹

到这里安装OpenSSL成功啦!
14.后续说明
a.以上编译的是release库,若编译debug库,则将以上第7步中的VC-WIN64A改成debug-VC-WIN64A即可;
b.若编译动态库则用ms\ntdll.mak替换掉上述第11步上面用到的ms\nt.mak即可。
另外还有几个命令可能会用到:
测试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
参考:http://www.linuxidc.com/Linux/2014-10/108502.htm
http://blog.csdn.net/zh516846937/article/details/40188065
vs2010 问题 >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
openssl windows 下 编译 bat的更多相关文章
- OpenSSL windows 下编译
源码下载:https://www.openssl.org/source/ 目前最新的1.0.2c 编译工具:ActiveState Perl from http://www.activestate. ...
- [转] Windows下编译OpenSSL
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- 在Windows下编译OpenSSL(VS2005和VC6)
需要说明的是请一定安装openssl-0.9.8a . openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...
- Windows下编译OpenSSL(使用VS2013)
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- 在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
- 如何在WINDOWS下编译BOOST C++库 .
如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25 写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0. 1)下载boost ...
- CEF中文教程(google chrome浏览器控件) -- Windows下编译Chromium
CEF中文教程(google chrome浏览器控件) -- CEF简介 2013-04-10 16:48 42928人阅读 评论(4) 收藏 举报 分类: CEF(2) 目录(?)[+] ...
- windows下编译php7图形库php_ui.dll
CSDN博客 具有图形化编程才有意思,这几天看到了php ui 图形扩展,只是现在只能下载php 7.1的 本次教程编译php7.2.6的 php ui 要是linux下编译起来比较简单 但是 win ...
- windows下编译和安装boost库
boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...
随机推荐
- Selenium2学习(一)-pip降级selenium3.0
selenium版本安装后启动Firefox出现异常:'geckodriver' executable needs to be in PATH selenium默默的升级到了3.0,然而网上的教程都是 ...
- Django路由系统---django重点之url传递一个默认参数
django重点之url传递一个默认参数 可以利用这个特性,让2个URL映射一个函数,但是返回2个不同的HTML url(r'default_param1', views.def_param,), u ...
- Win10离线安装.NET Framework 3.5的方法技巧(附离线安装包下载)
原文链接: https://www.windows10.pro/win10-net-framework-3-5/ 在Windows10中,当我们安装某些软件的时候会提示“你的电脑上的应用需要使用以下W ...
- Scala编译器安装
1.安装JDK 因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK. 2.安装Scala Windows安装Scala编译器 访问Scala官网http://www.scala- ...
- html禁用缓存
<!-- 禁用缓存 --><meta http-equiv="pragma" content="no-cache"><META H ...
- python的sys和os模块
一.sys sys.argv:实现从程序外部向程序传递参数. 其中sys.argv[0]为脚本的名称,所以要判断是否有参数传入可以:if len(sys.argv) > 1. sys.exi ...
- gluoncv 下载预训练模型速度太慢
export MXNET_GLUON_REPO=https://apache-mxnet.s3.cn-north-1.amazonaws.com.cn https://discuss.gluon.ai ...
- Spring(九)之事件处理
Spring的核心是ApplicationContext,它管理bean的完整生命周期.ApplicationContext在加载bean时发布某些类型的事件.例如,ContextStartedEve ...
- 基于Azure Blob冷存储的数据压缩备份总结
基于上一篇的压缩算法对比分析报告,选择了LZ4算法的普通模式,其测试压缩率为28%,20G压缩时间为256s,估计1T的冷备时间为3.5h. 接下来,将23T的HBase历史数据进行了压缩冷备,压缩后 ...
- FCC Truncate a string 解决方法
三行搞定 function truncate(str, num) { ab = str.length >num?num>3?str.slice(0,num-3)+ "...&qu ...