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位) 的相关文章

  • R语言学习笔记:分析学生的考试成绩

    孩子上初中时拿到过全年级一次考试所有科目的考试成绩表 正好可以用于R语言的统计分析学习 为了不泄漏孩子的姓名 就用学号代替了 感兴趣可以下载测试数据进行练习 num class chn math eng phy chem politics
  • Qt5学习之路(vs2012下创建一个QT应用程序)2013-10-14

    刚开始学习QT在网上找的资料基本都是使用QT Create进行开发的 VS下开发的学习资料感觉很少很难找的到 视频教程也基本没看到过貌似 因为我们研发中心是使用MFC进行开发开发工具是VS2010 使用QT开发的话基本我们不会再使用QT C
  • Vc/MFC中自定义消息及其PostMessage触发使用

    http blog csdn net ztz0223 article details 2058402 http blog csdn net a8082649 article details 7733527 http bbs csdn net
  • 简析多级指针解引用

    转自 简析多级指针解引用 指针是C语言中公认的最为强大的语法要素 但同时也是最难理解的语法要素 它曾给程序员带来了无数麻烦和痛苦 以致于在C语言之后诞生的很多新兴 语言中我们再也难觅指针的身影了 下面是一个最简单的C语言指针的例子 int
  • typedef struct 用法详解

    typedef为C语言的关键字 作用是为一种数据类型定义一个新名字 当typedef与结构结合使用时 会有一些比较复杂的情况 而且在C语言和C 里面有略有差别 本文将详细讲解typedef struct的用法 第一篇 typedef str
  • C/C++中浮点数格式学习——以IEEE75432位单精度为例

    这是浮点数的通常表示形式 在IEEE754中 单精度浮点数有如下形式 32位单精度 单精度二进制小数 使用32个比特存储 1 8 23位长 S Exp Fraction 31 30至23偏正值 实际的指数大小 127 22至0位编号 从右边
  • ATL字符串转换宏

    有比MultiByteToWideChar和WideCharToMultiByte更简单的字符串转换宏 你相信吗 头文件 d program files microsoft visual studio 8 vc atlmfc include
  • R----dplyr包介绍学习

    dplyr包 plyr包的替代者 专门面对数据框 将ddplyr转变为更易用的接口 gt 来自dplyr包的管道函数 其作用是将前一步的结果直接传参给下一步的函数 从而省略了中间的赋值步骤 可以大量减少内存中的对象 节省内存 可惜的是应用范
  • lua和测试(一)

    lua做为一门高级语言 在游戏产业运用到机会越来越多了 测试掌握几门脚本语言也有一定的重要性 以下对于lua组合输入做出一些引导 测试需要掌握的关于返回数值 主要用到布尔类 前言的指引 lua的语法比较简单和清晰 学过c语言的可以很好的掌握
  • Trace Function Enter, Exit and Leave

    http developer nokia com community wiki Trace Function Enter Exit and Leave
  • Dev-C++之开启装逼效果

    Dev C 是个不错的C IDE 在10年前 它是很不错 在现在 它是个以界面丑陋和调试像吃粑粑这两点著称 如下图 实在是丑到离谱 丑到无法忍受 可是没办法呀 人家CCF规定比赛用这个 你个小蒟蒻吵什么 我现在就来讲讲怎么把你的Dev C
  • 【C/C++】 - Linux下查找函数头文件 以及 man命令拓展

    背景 比如现在需要找C语言 sleep函数的头文件 使用man来查找 可以先man sleep 可以发现出来的默认是sleep 1 是一个User Commands 明显不是我们需要的 这里提示了 看sleep 3 那我们查看下sleep
  • stat 函数解析

    stat 函数的简单使用 stat 函数是用来获取文件的各种属性的一个linux下的常用API函数 函数原型为int stat const char path struct stat buf stat定义如下 struct stat dev
  • 检查内存泄露

    自己编写的视频处理程序出现了一个问题 每帧的运行时间随着运行时间在不断增长 很大可能是出现了内存泄露 于是学习了一些查看内存泄露的方法 做了两种尝试 一是VS自带的DEBUG下的检测 view pl html view plain copy
  • Java反序列化漏洞-CC1利用链分析

    文章目录 一 前置知识 1 反射 2 Commons Collections是什么 3 环境准备 二 分析利用链 1 Transform
  • C/C++编程:令人印象深刻的高级技巧案例

    C C 编程语言在软件开发领域有着悠久的历史 由于其高效 灵活和底层访问能力 至今仍然被广泛应用 本文将介绍一些在C C 编程中令人印象深刻的高级技巧 帮助读者提升编程水平 更加高效地使用这两种强大的编程语言 一 指针运算与内存管理 C C
  • C++ 字符串比较------strcmp函数和strncmp函数

    strcmp 函数原型 int strcmp const char str1 const char str2 功能 strcmp函数会按照字典顺序逐个比较两个字符串的字符 直到遇到不同的字符或者遇到字符串结束符 0 返回值 该函数返回值如下
  • C++ 中 const 和 constexpr 关键字解析:常量、函数和指针

    很多 C 的初学者看到 const 这个关键字的第一反应都是一头雾水 主要是因为 const 可 以出现在很多的位置 以及后面加入的 constexpr 更是常常感到困惑 今天就为大家一一解释出现它们的含义和以及作用 const 关键字 c
  • 在 OS X 上的 virtualenv 中安装 scrapy 加密时发生错误 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在安装 scrapypip in virtualenv on OS X 10 11 当它安装密码学时 它说 buil
  • 在 Solaris 上,使用 gcc 编译的库与使用 cc 生成的库的使用方式是否相同?

    我目前正在尝试编译 libxml2在 Solaris 上 当我运行源代码提供的 configure 脚本时 会自动使用 gcc 和 g 编译器 但是 我想使用 cc 和 CC 编译器 所以我跑 configure CC cc CXX CC

随机推荐

  • 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