编译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

最新文章

  1. 【web maven】新建的项目 controller也有,从前台跳转后台 无法找到对应的controller
  2. MapWinGIS.ocx 注册
  3. thinkphp单入口和多入口的访问方法
  4. MS SQL 合并结果集并求和 分类: SQL Server 数据库 2015-02-13 10:59 92人阅读 评论(0) 收藏
  5. DataTables 入门使用
  6. 第十章 Vim程序编辑器学习(下)
  7. Java中堆和栈的区别(转)
  8. 【英语】Bingo口语笔记(10) - 常见词汇的缩读
  9. 【转】如何使用KeyChain保存和获取UDID
  10. 宣布正式发布 Azure 媒体服务内容保护服务
  11. 设计模式(3)-对象创建型模式-Abstract Factory模式
  12. JS笔记 入门第一
  13. c语言: 文件io, 拷贝文件(二进制)
  14. iOS学习笔记(十五)——数据库操作(SQLite)
  15. SSH简介
  16. Django之Session
  17. Jenkins 远程构建任务
  18. source is null for getProperty(null, "cpmodel")异常结局
  19. Docker常见仓库Node.js
  20. IPhone微信H5用Video标签播放不了视频

热门文章

  1. 01 How does C Programming work ? C语言如何工作?
  2. Arduino各开发板
  3. axio跨域请求,vue中的config的配置项。
  4. 第四届58topcoder编程大赛--地图路径规划
  5. 实验五 css进阶应用
  6. snappy压缩/解压库
  7. 在Linux终端中快速生成、解码二维码
  8. golang xpath解析网页
  9. Spring Boot 整合多点套路,少走点弯路~
  10. C# 面试前的准备_基础知识点的回顾_02