Windows 下openssl安装与配置

摘要:
在互联网上有许多编译thirift的方法,其中大多数是针对32位计算机的。由于他们的计算机是win7和64位的,所以他们花了很长时间才成功安装。环境win7、64位和vs2005需要在下载ActivePerl配置的过程中生成一些mak文件。这些生成的代码是使用perl脚本生成的,因此您需要安装ActivePerl URL:http://www.activestate.com/activeperl/我下载了两个版本:1激活

Windows 下openssl安装与配置第1张

编译thirift失败

网上方法很多,大部分是针对32位机的,自己的电脑因为是win7,64位,摸索了很久才安装成功.

 

环境

WIN7, 64位, vs2005

 

下载ActivePerl

配置过程中需要生成一些mak文件,这些生成代码用perl脚本生成,所以要安装一个ActivePerl.

 

网址: http://www.activestate.com/activeperl/

 

我下载了两个版本:

1 ActivePerl-5.16.2.1602-MSWin32-x64-296513.msi  
2 ActivePerl-5.16.2.1602-MSWin32-x86-296513.msi  

装的是第一个版本,64位的。

 

下载openssl

网址 http://www.openssl.org/

我用的是openssl-0.9.8g版本,解压到c盘根目录。

 

安装步骤:

(可以参照openssl目录下的install.win32)

1打开命令行

进入openssl源码目录。
cd c:/openssl-0.9.8.g
执行perl Configure VC-WIN32

 

2在c:/openssl-0.9.8.g目录运行msdo_ms

另外两种方式如果使用也必须保证本机有编译器才能使用。

:msdo_masm(默认vc自带的编译器;也也以自己下载安装)

:msdo_nasm(需要自己下载)

 

3 DOS窗口转到C:Program FilesMicrosoft Visual Studio VC98in目录(就是VC或VS对应的目录,你电脑可能有差异)

执行vcvars32.bat以配置环境变量.成功后显示如下:

 

 

4、跳到openssl目录下,编译动态链接库

cd c:/openssl-0.9.8.g
执行 >nmake -f ms tdll.mak

 

如果编译成功,输出在out32dll目录下:包括可执行文件、两个dll和两个lib文件: libeay32.dll, libeay32.lib, ssleay32.dll,ssleay32.lib

 

如果遇到"ml不是内部或外部命令"这样的错误,找到你电脑里的ml.exe文件拷贝到当前目录重新执行即可。

 

这里要特别强调一下,这种方法生成的是动库链接库, 也就是我们的应用工程如果要使用openssl, 编译时要指定

lib文件,程序发布时要用到相应的dll. 我遇到过一种情况是, 在win7下发布的使用openssl的程序无法运行,弹出

“运行时初始化相关的错误”, 但是在xp下编译,发布,在其它win7和winXP上都能运行. 估计是win7下没配置好,导致只能本机编译,运行,无法发布.

 

如果要把openssl编译成静态的库,只要把上面的ntdll.mak换成nt.mak就可以了,我试着用了一个静态的库,发现要解决很多编译时的兼容,冲突问题,建议不要使用静态方法.

 

下面来测试一下。

建立工程

打开vs2005,

在additionalinclude directories加上

"C:openssl-0.9.8ginclude"

这个目录.

 

在additionallibrary directories加上

"C:openssl-0.9.8gout32dll"

这个目录

 

代码类似下面这样:

 1 #include<stdio.h>  
 2 #include<stdlib.h>  
 3 #include<string.h>  
 4 #include<time.h>  
 5 #include<openssl/bn.h>  
 6 #include<openssl/ec.h>  
 7 #include<openssl/rand.h>  
 8 #include<openssl/err.h>  
 9 #include<openssl/ecdsa.h>  
10 #include<openssl/ecdh.h>  
11 #include"sm2.h"  
12    
13 #pragmacomment(lib,"libeay32.lib")  

编译不会有问题.同样在VC6下,把上面两个目录包含进来,编译也通过.

免责声明:文章转载自《Windows 下openssl安装与配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇一个封装了localStorage的增删改查的方法EntityFramework Core 学习系列(一)Creating Model下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Gradle 翻译 build dependencies 依赖 [MD]

博文地址 我的GitHub 我的博客 我的微信 我的邮箱 baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 添加构建依赖项 Add build dependencies Android Studio中的Gradle构建系统可以轻松地将外部二进制文件或其他库模块作为依赖项包含在构建中。依赖项可...

ubuntu 14.04 源码编译mysql-5.7.17

环境为 Ubuntu 12.04 64 位的桌面版 编译的mysql 版本为 5.7.18 首先需要安装一下依赖包 sudo apt-get install libncurses5-dev cmake chkconfig 创建用户组和用户 mysql groupadd mysql useradd -r -g mysql -s /bin/bash mysq...

如何指定GCC的默认头文件路径

如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:)原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631===============================================================================在交叉编译的时候我们需要...

Kettle-linux部署方案

Kettle-linux部署方案 部署过程: 环境准备:jdk1.8,kettle8.1(kettle和jdk版本需要match) 将data-integration.zip解压 # unzip data-integration.zip # cd ./data-integration/ # ./kitchen.sh 问题1.#./kitchen.sh #...

Newifi OpenWrt 下 EAP-PEAP,EAP-TLS 企业级无线认证及 FreeRadius3

Newifi OpenWrt 下 EAP-PEAP,EAP-TLS 企业级无线认证及 FreeRadius3 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-07-15. 副标题:家用路由器,配置EAP-PEAP,EAP-TLS企业认证的无线接入服务。 家里的WiFi一般是用WPA2认证,密码只有一个,泄漏了,家里所有设备都要换密码。...

Oracle-OGG,双向同步过滤OGG自身用户的DML失效,如何处理?

一、问题,OGG,双向同步过滤OGG自身用户的DML失效,如何处理? TRANLOGOPTIONS EXCLUDEUSER pdbodb.C##OGG1双向复制每个抽取进程配置这个参数,过滤OGG用户产生的DML操作进行屏蔽,否则无限循环复制!如果不好使了呢? 某个链路的过滤参数失效? 二、尝试使用其它参数进行过滤 2.1 EXCLUDEUSERID  测...