windows编译openssl(64位)一游
编译openssl,一套标准流程:
(环境: win10 64位os, vs2019)
需要的工具:perl nasm openssl源码包
1 安装perl
2 下载nasm,将nasm配置到path环境变量
openssl要用到perl,而perl依赖nasm
3 解压openssl源码包
4 开始菜单->visual studio 2009->x64 Native Tools Command Prompt for VS 2019->右键选择更多->以管理员身份运行
5 cd 到解压的openssl源码目录
6 perl Configure VC-WIN64A --prefix=C:\Source\vs2019_64\openssl
--prefix 可以指定openssl的生成目录
7 nmake
8 nmake install
9 nmake test
正片来了,在编译的过程中遇到的问题:
问题一:nmake报错 fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“x86”冲突

解决:输入 nmake clean 解决,应该是openssl中有残余32位的编译数据
问题二:nmake报错 fatal error U1077: “cl”: 返回代码“0x2”




解决:改名后报错解决
问题三:fatal error U1073: 不知道如何生成“"crypto\rc4\asm\rc4-md5-x86_64.pl"”

解决:按路径打开crypto\rc4\asm\rc4-md5-x86_64.pl后发现是名字多了一个(1),改掉后重试
接下来还有
问题四:。。。
问题五:。。。
问题六:。。。
问题七:。。。
。。。
有完没完啦!!!
为什么问题这么多呢,我思考了一下,我的openssl是找的网盘里下载的。下载的时候有压缩包,还有一个解压好的文件,我就直接用这个解压的openssl文件夹了,肯定是这个解压缩的文件夹有问题,果断放弃,把压缩包重新解压了一份,对比发现原来的openssl文件夹不光有命名错误还少文件,这才是问题的根源啊。不过正好借此机会,在解决问题的过程中,学到了不少知识,锻炼了解决问题的思路,还是挺值的。
加餐:
知识一:
开始菜单-》visual studio 2009-》右键-》更多-》打开文件位置


知识二:error LNK1112: 模块计算机类型“X64”与目标计算机类型“x86”冲突”,vs中配置修改。
1、右击该项目,选择属性,在最上面点击 “配置管理器”,新建平台 “x64”,然后把 X64,点击关闭。
2、在属性页选择 “链接器” —>“高级”,在里边有一项名为目标计算机,将其改为:MachineX64 (/MACHINE:X64) ,然后点击确定。
知识点三:把此过程放入一个批处理文件 build_openssl_vs2019_64.bat
使用管理员权限运行,回到C:\Windows\System32\下 所以cd要使用绝对路径

@echo "start openssl"
set VS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
set OUT="C:\Source\libeventOut\out\vs2019_64\openssl"
call %VS%
cd C:\Source\libeventLearn\openssl\openssl-1.1.1
perl Configure VC-WIN64 --prefix=%OUT%
nmake clean
nmake
nmake install
@echo "end openssl"
pause
windows编译openssl(64位)一游的更多相关文章
- Windows Server 2008 64 位 IIS7.5 ASP.NET MVC4 发布问题
问题描述: 环境与配置: ASP.NET MVC 4 WINDOWS SERVER 2008 64 位 应用程序池是选择的 .NET 4.0 与经典模式 在新建一个MVC 4 项目发现到服务器上后 ...
- windows 2008 R2 64位系统,找到Microsoft Excel 应用程序
在windows 2003 操作系统中, 1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务", 2.依次双击& ...
- vs2015编译boost 64位
---恢复内容开始--- step 1: 打开Developer Command Prompt for VS2015命令行窗口 step 2: 执行bootstrap.bat,产生bjam.exe s ...
- Windows 7,64位机器上安装DB2 7.2+FP7
1.要想在Windows 7,64位机器上安装DB2 7.2+FP7,注意:1)拷贝所有安装文件到本地2)设置setup.exe文件兼容windows 20003)使得users用户勾选“完全控制”权 ...
- 64位windows上访问64位oracle 12c
64位windows上访问64位oracle 12c,这会有啥问题? 没啥问题.问题是,我64位操作系统的机器上装了个oracle 10g.而oracle 10g好像是不区分啥32位.64位的,一律3 ...
- 【VS开发】【C/C++开发】vs2015编译boost 64位
vs2015编译boost 64位 ---恢复内容开始--- step 1: 打开Developer Command Prompt for VS2015命令行窗口 step 2: 执行bootstra ...
- 编译本地64位版本的hadoop-2.6.0
官方提供的hadoop-2.x版本貌似都是32位的,在64位机子下使用可能会报错,最好使用官方提供的源码进行本地编译,编译成适合本地硬件环境的64位软件包. 关于native Hadoop是使用J ...
- 关于Windows 7的64位系统不兼容某些控件的问题
我的问题是vsflex7.ocx 不能在64位系统下运行,导致软件的一个涉及到这个控件的功能出错.如下: 解决的办法基本思路是把这个控件注册一下.然后就可以了.就是这个控件: 目录中没有自己下载个. ...
- Oracle 11G R2 在windows server 2008 64位安装时提示:无法在windows "开始"菜单或桌面上创建项
错误代码及解释: 在windows server 2008 64 位操作系统中安装 oracle 11G R2 64位 版本时提示:无法在windows "开始"菜单或桌面上创建 ...
随机推荐
- (leetcode每日打卡)秋叶收藏集【动态规划】
LCP 19.秋叶收藏集 题目链接 算法 动态规划 时间复杂度O(n) 1.题目要求最终形成[红.黄.红]三部分,每部分数量可以不相等,问最终调整操作数量最小是多少.这道题一开始考虑暴力去做,枚举两个 ...
- Mac 效率工具必备神器 —— Alfred
前言 alfred 这款软件称为「神器」真是当之无愧.今天专门总结一下,作为之前 Mac 配置教程-开发篇 的补充. 需要说明的是,如果你发现我介绍的功能无法使用,则代表需要花钱购买它的 Powerp ...
- 017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例
017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例 本文知识点:变量 相同类型的变量可以一次同时定义多个 例:可以一行代码同时定义2个变量x ...
- C++指针delete后还要置为null
非常好的一篇说明: 转载:https://blog.csdn.net/qq_36570733/article/details/80043321 众所周知,最开始我们用new来创建一个指针,那么等我们用 ...
- ::在C++中是什么意思
转自:https://blog.csdn.net/u012547790/article/details/22727277 ::在C++中是什么意思 今天又想了一下::在C++中是什么意思: 表示作用域 ...
- JavaScript 将十进制数转换成格式类似于 0x000100 或 #000100 的十六进制数
将十进制数转换成格式类似于 0x000100 或 #000100 的十六进制数 1 <!DOCTYPE html> 2 <html> 3 <head> 4 < ...
- 使用HTML的基本结构创建网页
1. 网页的扩展名--html或htm 2. 如何新建网页? 步骤1: 在电脑的空白处,右键选择-->新建--文本文档 步骤2: 把txt的扩展名,改成html或htm, ...
- layui+tp5表单提交回调
layui 前段页面form表单提交数据如果监听表单提交 ,tp5后台操作完成后使用 $this->success('success'); 后前端的页面不会出现layui的layer弹窗提示su ...
- Jenkins从节点上构建自动化测试项目时报错:java.io.IOException: Unexpected termination of the channel
在mac电脑上配置了Jenkins从节点,在该从节点上构建app UI 自动化测试项目,运行一些用例后报如下错误: java.io.EOFException at java.io.ObjectInpu ...
- 五分钟详解MySQL并发控制及事务原理
在如今互联网业务中使用范围最广的数据库无疑还是关系型数据库MySQL,之所以用"还是"这个词,是因为最近几年国内数据库领域也取得了一些长足进步,例如以TIDB.OceanBase等 ...