安装ActivePerl

这个没什么好说的,直接运行msi即可。

编译OpenSSL

1.使用Visual Studio Tool中的“VS2013 x64 本机工具命令提示”来打开控制台;也可以打开一个控制台,然后进到“安装路径\Microsoft Visual Studio 12.0\VC\bin\amd64\“中运行vcvars64.bat;

2.解压下载下来的openssl的压缩包,进入解压文件夹,输入命令:perl Configure VC-WIN64A;

3.输入命令ms\do_win64a;

4.输入命令nmake -f ms\nt.mak开始编译,如需要dll则命令为nmake -f ms\ntdll.mak(如果前面没有配置好发现使用了32bit的nmake,可使用绝对路径使用“安装路径\Microsoft Visual Studio 12.0\VC\bin\amd64\nmake.exe”);

5.如编译成功,可使用nmake -f ms\nt.mak test来测试。

PS:如果需要编译32bit的,第一步使用x86的控制台,二三步中改为VC-WIN32和ms\do_ms。

配置VS

1.项目->属性->配置属性->VC++ 目录->包含目录,将openssl文件夹的inc32添加进去;项目->属性->配置属性->VC++目录->库目录,添加openssl文件夹下的out32dll;

2.项目->属性->配置属性->链接器->输入->附加依赖项,增加libeay32.lib和ssleay32.lib;

3.将out32dll中的libeay32.dll和ssleay32.dll拷贝至工程目录下。

编译当中遇到的错误和解决办法

OpenSSL编译的时候提示少了strings.h头文件

修改这个文件

crypto/o_str.c

#if !defined(OPENSSL_IMPLEMENTS_strncasecmp) && \

!defined(OPENSSL_SYSNAME_WIN32) && \

!defined(NETWARE_CLIB)

# include <strings.h>

#endif

这个编译开关定义了就可以了

定义的方法在nt.mak 这个文件中的CFLAG 将-DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN

这两个宏加进去

还有一个重复定义的问题,这样也可以一并解决

链接错误

link /nologo /subsystem:console /opt:ref /debug /dll /out:out32dll\libea
y32.dll /def:ms/LIBEAY32.def @C:\Users\Unst\AppData\Local\Temp\nm75AD.tmp
bn-586.obj : error LNK2005: _bn_sub_part_words 已经在 bn_mul.obj 中定义
正在创建库 out32dll\libeay32.lib 和对象 out32dll\libeay32.exp
mem.obj : error LNK2001: 无法解析的外部符号 _cleanse_ctr
mem.obj : error LNK2001: 无法解析的外部符号 _cleanse_ctr
out32dll\libeay32.dll : fatal error LNK1120: 1 个无法解析的外部命令
NMAKE : fatal error U1077: “"D:\Program Files\Microsoft Visual Studio 10.0\VC\B
IN\link.EXE"”: 返回代码“0x460”
Stop.
原因:之前因为没有注意输入命令的大小写,影响了后面的编译。
办法:删了OpenSSL目录,再来一遍。

http://blog.csdn.net/fion45/article/details/40002387

VS2013编译64位OpenSSL(附32位)的更多相关文章

  1. win7 64位平台编译的程序在XP 32位平台无法运行的解决方法

    win7 64位平台编译的程序在XP 32位平台无法运行的解决方法 vs2010的开发环境,制作了一个DLL库.但DLL在XP 32位平台一直无法使用.解决方法如下: 右键项目,属性->配置属性 ...

  2. 64位进程调用32位dll的解决方法 / 程序64位化带来的问题和思考

    最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/C++代码),long类型的变化,最关键的 ...

  3. Linux:使用rpcgen实现64位程序调用32位库函数

    摘要:本文介绍使用rpcgent实现64位程序调用32位库函数的方法,并给出样例代码. 我的问题 我的程序运行在64位Linux系统上,需要使用一个从外部获得的共享库中的函数,这个共享库是32位的,无 ...

  4. 64位进程调用32位dll的解决方法

    64位进程调用32位dll的解决方法   最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/ ...

  5. 64位主机64位oracle下装32位客户端ODAC(NFPACS版)

    64位主机64位oracle下装32位客户端ODAC(NFPACS版) by dd 1.下载Oracle Data Access Components(ODAC) Xcopy的两个版本: x86:(我 ...

  6. 怎样打开64位 Ubuntu 的32位支持功能?

    转自:http://jingyan.baidu.com/article/7082dc1c539c15e40a89bd3e.html 大多数使用基于 Ubuntu/Debian 的发行版的人都更倾向于选 ...

  7. 64位ubuntu安装32位jdk

    转自:http://blog.csdn.net/anladeyatou/article/details/8213334 ubuntu-11.10-desktop-amd64 jdk-6u23-linu ...

  8. CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决

    Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...

  9. 怎样打开64位 Ubuntu 的32位支持功能?

    怎样打开64位 Ubuntu 的32位支持功能? 现在有一个让你可以在64位系统中使用32位软件的方法,就在你读了这篇文章然后照着做了之后就可以了.如果你有一个13.10或更高版本的Ubuntu/De ...

随机推荐

  1. InstallShield 2015 Premier的Basic MSI Project如何在卸载时删除残留的文件 (转)

    转载:http://blog.csdn.net/zztoll/article/details/54018615#comments 先说下缘由,我在用InstallShield 2015 Premier ...

  2. CentOS6安装Pyhon3

    一,从官方下载Python3.6 [root@linux-node1 src]# pwd /usr/local/src [root@linux-node1 src]# wget https://www ...

  3. asp.net web api的源码

    从安装的NuGet packages逆向找回去 <package id="Microsoft.AspNet.WebApi.Core" version="5.2.7& ...

  4. 动画的使用—Drawable Animation

    Drawable Animation可以称为帧动画,因为它是通过每次播放一帧Drawable资源实现的. Drawable Animation算不上真正意义上的动画,因为它的内部实现是通过定时发送消息 ...

  5. [原][译][osgearth][EarthFile]关于EarthFile 的Model Layer 讲解(通过earth文件加载模型层)(OE官方文档翻译)

    原文参考:http://docs.osgearth.org/en/latest/references/earthfile.html#model-layer 本人翻译能有限.... 模型层 模型层渲染“ ...

  6. Angel 实现FFM 一、对于Angel 和分布式机器学习的简单了解

    Angel是腾讯开源的一个分布式机器学习框架.是一个PS模式的分布式机器学习框架. https://github.com/Angel-ML/angel   这是github地址. 我了解的分布式机器学 ...

  7. Linux常用命令--文件操作、权限设置

    1.编辑文件 cat aaa.txt 查看aaa.txt文件的内容 head - aaa.txt 查看aaa.txt文件前5行的内容 tail - aaa.txt 展示aaa.txt文件最后10行的内 ...

  8. Linux 常用环境搭建

    已有环境 python 2.6.6 jdk 1.7 —tomcat— —jenkins— —jq— —Python 2.7— —pip— —PIL— —Android SDK— —yum or apt ...

  9. bzoj 1318 [SPOJ744] Longest Permutation (排列)

    大意: 给定序列, 求选出一个长度为k的区间, 使得区间内的数为[1,k]的排列, 且要求k最大 这题好神啊. 每个排列有且仅有一个1, 我们按1将序列分成若干子问题来处理, 而每个位置最多属于两个子 ...

  10. 2-7-搭建DNS服务器实现域名解析

    学习服务的方法: 了解服务的作用:名称,功能,特点 安装服务 配置文件的位置,端口 服务开启和关闭的脚本 修改配置文件(实战举例) 排错(从上到下,从内到外) -------------------- ...