编译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位)一游的更多相关文章

  1. Windows Server 2008 64 位 IIS7.5 ASP.NET MVC4 发布问题

    问题描述: 环境与配置: ASP.NET MVC 4 WINDOWS SERVER 2008 64 位 应用程序池是选择的 .NET 4.0 与经典模式   在新建一个MVC 4 项目发现到服务器上后 ...

  2. windows 2008 R2 64位系统,找到Microsoft Excel 应用程序

    在windows  2003 操作系统中, 1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务", 2.依次双击& ...

  3. vs2015编译boost 64位

    ---恢复内容开始--- step 1: 打开Developer Command Prompt for VS2015命令行窗口 step 2: 执行bootstrap.bat,产生bjam.exe s ...

  4. Windows 7,64位机器上安装DB2 7.2+FP7

    1.要想在Windows 7,64位机器上安装DB2 7.2+FP7,注意:1)拷贝所有安装文件到本地2)设置setup.exe文件兼容windows 20003)使得users用户勾选“完全控制”权 ...

  5. 64位windows上访问64位oracle 12c

    64位windows上访问64位oracle 12c,这会有啥问题? 没啥问题.问题是,我64位操作系统的机器上装了个oracle 10g.而oracle 10g好像是不区分啥32位.64位的,一律3 ...

  6. 【VS开发】【C/C++开发】vs2015编译boost 64位

    vs2015编译boost 64位 ---恢复内容开始--- step 1: 打开Developer Command Prompt for VS2015命令行窗口 step 2: 执行bootstra ...

  7. 编译本地64位版本的hadoop-2.6.0

     官方提供的hadoop-2.x版本貌似都是32位的,在64位机子下使用可能会报错,最好使用官方提供的源码进行本地编译,编译成适合本地硬件环境的64位软件包. 关于native  Hadoop是使用J ...

  8. 关于Windows 7的64位系统不兼容某些控件的问题

    我的问题是vsflex7.ocx 不能在64位系统下运行,导致软件的一个涉及到这个控件的功能出错.如下: 解决的办法基本思路是把这个控件注册一下.然后就可以了.就是这个控件: 目录中没有自己下载个. ...

  9. Oracle 11G R2 在windows server 2008 64位安装时提示:无法在windows "开始"菜单或桌面上创建项

    错误代码及解释:  在windows server 2008 64 位操作系统中安装 oracle 11G R2 64位 版本时提示:无法在windows "开始"菜单或桌面上创建 ...

随机推荐

  1. [JZOJ]2109 清兵线 题解

    ## [JZOJ]2109 清兵线 题解 **FIRST 题目大意** 给你一些正整数,这些正整数为数轴上若干个点代表的数.现求:假设从原点出发,走m以内(包括m)的距离最多能够访问多少个点,输出m- ...

  2. 《VC++ 深入详解》 第3版 这是盗版书么~。。。

    <VC++ 深入详解> 第3版 www.broadview.com.cn 书读到一小半,发现书重复了一部分,缺失一部分.... 难受~ 比较难继续下去了 有一样的小伙伴么~ <VC+ ...

  3. HTML & CSS & JavaScript 从一个表格到一个灰阶颜色表(目录)

    HTML & CSS & JavaScript 从一个表格到一个灰阶颜色表 01 HTML & CSS & JavaScript 从一个表格到一个灰阶颜色表 02 HT ...

  4. 「DevOps 转型与实践」沙龙回顾第一讲

    9 月 19 日,CODING 和中国 DevOps 社区联合举办的深圳第九届 Meetup 在腾讯大厦 2 楼多功能圆满结束.本次沙龙以 「DevOps 转型与实践」 为主题,4 位来自互联网.金融 ...

  5. c#类(class)

    类 类的定义是以关键字class开始的,后面跟类的名称,类的主题包含一个花括号里,下面是类定义的一般格式. <access specifier> class class_name { // ...

  6. 详解Class加载过程

    1.Class文件内容格式 2.一个class文件是被加载到内存的过程是怎样的? loading 把一个class文件装到内存里,class文件是一个二进制,一个个的字节 linking Verifi ...

  7. GAN网络之入门教程(五)之基于条件cGAN动漫头像生成

    目录 Prepare 在上篇博客(AN网络之入门教程(四)之基于DCGAN动漫头像生成)中,介绍了基于DCGAN的动漫头像生成,时隔几月,序属三秋,在这篇博客中,将介绍如何使用条件GAN网络(cond ...

  8. CPU 执行程序的秘密,藏在了这 15 张图里

    前言 代码写了那么多,你知道 a = 1 + 2 这条代码是怎么被 CPU 执行的吗? 软件用了那么多,你知道软件的 32 位和 64 位之间的区别吗?再来 32 位的操作系统可以运行在 64 位的电 ...

  9. SpringBoot整合Shiro+MD5+Salt+Redis实现认证和动态权限管理|前后端分离(下)----筑基后期

    写在前面 在上一篇文章<SpringBoot整合Shiro+MD5+Salt+Redis实现认证和动态权限管理(上)----筑基中期>当中,我们初步实现了SpringBoot整合Shiro ...

  10. JVM性能调优(3) —— 内存分配和垃圾回收调优

    前序文章: JVM性能调优(1) -- JVM内存模型和类加载运行机制 JVM性能调优(2) -- 垃圾回收器和回收策略 一.内存调优的目标 新生代的垃圾回收是比较简单的,Eden区满了无法分配新对象 ...