编译thirift失败

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

环境

WIN7, 64位, vs2005

下载ActivePerl

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

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

我下载了两个版本:

 ActivePerl-5.16.2.1602-MSWin32-x64-.msi
ActivePerl-5.16.2.1602-MSWin32-x86-.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目录运行ms\do_ms

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

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

:ms\do_nasm(需要自己下载)

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

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

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

cd c:/openssl-0.9.8.g
执行 >nmake -f ms\ntdll.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.8g\include"

这个目录.

在additionallibrary directories加上

"C:\openssl-0.9.8g\out32dll"

这个目录

代码类似下面这样:

 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<openssl/bn.h>
#include<openssl/ec.h>
#include<openssl/rand.h>
#include<openssl/err.h>
#include<openssl/ecdsa.h>
#include<openssl/ecdh.h>
#include"sm2.h" #pragmacomment(lib,"libeay32.lib")

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

Windows 下openssl安装与配置的更多相关文章

  1. Windows下pry安装和配置

    Windows下pry安装和配置 pry是一个增强型的交互式命令行工具,比irb强大. 有自动完成功能,自动缩进,有颜色.有更强大的调试功能. pry 安装很简单. 在终端输入: gem instal ...

  2. windows下redis安装和配置

    windows下redis安装和配置 redis介绍 Redis是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的Web应用程序. Redis有三个主要特点,使它优越于其它键值数 ...

  3. solr在windows下的安装及配置

    solr在windows下的安装及配置 首先,solr是基于Java开发的,所以使用的话需要先进行java环境的配置,在Java环境配置好之后就可以去http://www.apache.org/dyn ...

  4. Lua在Windows下的安装、配置、运行

    Lua在Windows下的安装.配置.运行 本文链接:https://blog.csdn.net/ChinarCSDN/article/details/78667262 展开 # Windows下安装 ...

  5. windows下手动安装和配置xamarin

    安装xamarin xamarin官方给出了两种安装方式,自动安装和手动安装. 自动安装比较简单,到http://xamarin.com/download下载xamarininstaller.exe ...

  6. QT在windows下的安装与配置

    先了解Qt: Qt一直以来,分为商业.开源两个版本,商业版本为用户提供了二级制的动态库,直接安装既可以使用,但是需要花钱购买license,而开源版本则遵守GPL协议,提供了源码,用户需要自行编译,才 ...

  7. Windows 下OpenSSL 安装

    安装环境: .操作系统:Windows XP SP2 2.C++编译器:VC++ 6.0 下载: 下载ActivePerl  5.10.1.1007(最新的版本或较低的版本也可以): 下载地址:htt ...

  8. windows下nginx安装、配置与使用(转载)

    目前国内各大门户网站已经部署了Nginx,如新浪.网易.腾讯等:国内几个重要的视频分享网站也部署了Nginx,如六房间.酷6等.新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx ...

  9. Python在windows下的安装与配置

    安装python 文件准备: A. python安装文件:我用的是python-3.4.3.amd64.msi: 安装很简单,直接双击点下一步即可: 配置环境变量,在windows系统变量中找到pat ...

随机推荐

  1. BUPT复试专题—打牌(2011)

    https://www.nowcoder.com/practice/82442ee76977479e8ab4b88dfadfca9f?tpId=67&tqId=29640&tPage= ...

  2. Thinking in React(翻译)

    下面是React官方文档中的Thinking inReact文章的翻译,第一次翻译英文的文章,肯定有非常多不对的地方,还望多多包涵. 原文地址:https://facebook.github.io/r ...

  3. 三联动 支持ie6,ie7 省,市,区

    三联动 支持ie6,ie7 省,市,区 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <tit ...

  4. Network Booting

    http://en.wikipedia.org/wiki/Network_booting Network booting Network booting is the process of booti ...

  5. ACM-ICPC如何起步[转]

    ACM-ICPC如何起步 刚刚绝定投身ACM-ICPC的同学先要过两关. 第一关:程序设计语言 如果学校有开设相关课程,则省去了很多麻烦.如果没有则可以选择<程序设计导引及在线实践>作为教 ...

  6. mysql 查询 优化

    1.基本原则:优化数据访问 (1)是否想服务器请求了不需要的数据?提取超过需要的列,多表连接时提取所有列,提取所有列都会消耗不必要的资源,提取你所需要的列就可以了. (2)MySQL检查了太多的数据吗 ...

  7. 手把手编写自己的PHPMVC框架

    1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller ...

  8. 查看 python安装目录

    打开终端 输入: which python 打开终端 依此输入: python import sys print sys.path

  9. AptitudeSystem 2.0

    AptitudeSystem 2.0(2017-03-07) 描写叙述:Windows内核研究辅助工具 支持的系统:Windows 7.Windows 8.Windows 8.1.Windows 10 ...

  10. JAVA学习第十九课(java程序的异常处理 (二))

    异常处理的捕捉形式: 这是能够对异常进行针对性处理的方式 六.try.catch的理解 详细格式: try { //须要被检測异常的代码 } catch(异常类 变量)//改变量用于接受发生异常的对象 ...