VS2013编译64位OpenSSL(附32位)

2023-11-18

安装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


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • JavaScript常用事件讲解

    声明 本人的所有博客皆为个人笔记 作为个人知识索引使用 因此在叙述上存在逻辑不通顺 跨度大等问题 希望理解 分享出来仅供大家学习翻阅 若有错误希望指出 感谢 事件流 事件流描述的是从页面接收事件的顺序 事件冒泡 事件开始由最具体的元素接收

随机推荐

  • c语言统计各类字符个数

    输入十个字符 统计其中英文字母 空格或回车 数字字符和其他字符的个数 7 43 统计字符分数 15 全屏浏览题目 切换布局 作者 颜晖 单位 浙大城市学院 本题要求编写程序 输入10个字符 统计其中英文字母 空格或回车 数字字符和其他字符的
  • mysql的索引 优化 前导列

    组合索引之 前导列 1 对于where子句中出现的列要想索引生效 会有一些限制 这就和前导列有关 2 所谓前导列 就是在创建复合索引语句的第一列或者连续的多列 比如通过 CREATE INDEX comp ind ON table1 x y
  • 第一个Node程序,Node入门

    第一个Node程序 在前面的所有内容中 我们编写的JavaScript代码都是在浏览器中运行的 因此 我们可以直接在浏览器中敲代码 然后直接运行 从本章开始 我们编写的JavaScript代码将不能在浏览器环境中执行了 而是在Node环境中
  • 位运算及其应用详解

    http blog chinaunix net uid 21411227 id 1826986 html 一 逻辑运算符 1 位与运算 1 运算规则 位与运算的实质是将参与运算的两个数据 按对应的二进制数逐位进行逻辑与运算 例如 int型常
  • 低代码发展史及现状

    做开发 真的一定需要写代码吗 这次真的轮到程序员革自己的命了 业内很多人都这样感叹 2019年见证了低代码 零代码市场的首次爆发 种种迹象似乎在提醒着我们 一个新的 风口 正在形成 Do developers really need to
  • NeRF项目LLFF 解决新场景pose生成的问题

    最近一直在做NeRF相关的项目 其中LLFF前向数据集 是NeRF常用数据集 本文讲下怎么对NeRF数据进行处理 几个重要的链接地址 github llff GitHub Fyusion LLFF Code release for Loca
  • upload-labs-2

    登陆第二关 查看代码 发现是文件类验证 抓包 修改为允许发现成功 放包
  • solr的三种提交方式

    三种solr提交索引的方式 1 commit 通过api直接commit 这样性能比较差 在我测试下 平均每条commit600ms HttpSolrServer solrServer new HttpSolrServer http loc
  • Docker安装mysql

    Docker安装mysql 查看镜像 下载镜像 启动容器 进入mysql数据库 查看镜像 docker search mysql 5 7 下载镜像 docker pull mysql 5 7 启动容器 可以直接执行这一步 一步到位 dock
  • APP自动化测试-8.移动端混合应用自动化测试

    APP自动化测试 8 移动端混合应用自动化测试 文章目录 APP自动化测试 8 移动端混合应用自动化测试 前言 一 webview 1 webview简介 2 webview判断 二 环境准备 三 脚本编写 1 启动被测应用 2 进入web
  • 2021最新 腾讯云添加二级域名

    0 什么是二级域名 二级域名也就是在顶级域名下的子域名 在国际顶级域名下 它是指域名注册人的网上名称 在国家顶级域名下 它是表示注册企业类别的符号 我国在国际互联网络信息中心 Inter NIC 正式注册并运行的顶级域名是CN 这也是我国的
  • 虚拟服务器实现方式,服务器实现虚拟主机的三种主要方式

    服务器实现虚拟主机的三种主要方式 内容精选 换一换 弹性云服务器 Elastic Cloud Server ECS 是由CPU 内存 操作系统 云硬盘组成的基础的计算组件 购买时通过选择实例规格 操作系统 虚拟私有云 登录鉴权方式等信息实现
  • VMware虚拟机跑Linux系统无/dev/fb0解决办法

    最近在做摄像头的视频采集显示与处理 需要用到Frame Buffer的图形显示 我们知道在Linux系统应用中 可以通 过对 dev fb0 操作把数据显示在屏幕上 比如摄像头的图像采集 可以通过设备名 dev video0 来打开摄像头
  • 华为OD机试 - 单词搜索(Java)

    题目描述 找到它是一个小游戏 你需要在一个矩阵中找到给定的单词 假设给定单词 HELLOWORD 在矩阵中只要能找到 H gt E gt L gt L gt O gt W gt O gt R gt L gt D连成的单词 就算通过 注意区分
  • linux密码过期前警告天数,linux更改用户的密码过期时间

    对于新添加的用户 用户密码过期时间是从 etc login defs中PASS MAX DAYS提取的 普通系统默认就是99999 而安全操作系统4 0是90 更改此处 只是让新建的用户默认密码过期时间变化 已有用户密码过期时间仍然不变 功
  • score在java中_java基础

    DOC执行 set classpath c java Hello 将类的查找路径指向了c盘 在运行时 会从c盘下开始查找 mian 方法是程序的主方法 在一个java程序中有且只能有一个main 方法 main method 之前必须加上p
  • 关于“访问映射网络驱动器提示 本地设备名已在使用中,此连接尚未还原”解决方法!...

    这几天单位2台电脑出现故障 其中一台作为内部部门范围内文件服务器 另外一台电脑连接该机器的共享文件夹 一直正常 就这几天突然出现 访问映射网络驱动器提示 本地设备名已在使用中 此连接尚未还原 的错误 网上查找资料发现一段说明公司客户端的电脑
  • SpringMVC系列(二)之常用注解介绍及参数传递说明

    目录 前言 一 SpringMVC常用注解 1 1 RequestParam 1 2 RequestBody 1 3 PathVariable 1 4 RequestHeader 二 SpringMVC的参数传递 2 1 基础类型传参 可以
  • Java的作用域

    Java的作用域 作用域是指变量能生效的区域范围 声明在不同地方的变量具有不同的作用域 而决定作用域的就是花括号的位置 同时还决定了变量名的可见性与生命周期 Java语言中 变量的类型主要有成员变量 静态变量 和局部变量三种 类的成员变量
  • VS2013编译64位OpenSSL(附32位)

    安装ActivePerl 这个没什么好说的 直接运行msi即可 编译OpenSSL 1 使用Visual Studio Tool中的 VS2013 x64 本机工具命令提示 来打开控制台 也可以打开一个控制台 然后进到 安装路径 Micro