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