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