安装openssl走了很多弯路,记录一下。
1、下载原材料:
- openssl:https://www.openssl.org/source/
- vs2017:https://www.visualstudio.com/zh-hans/downloads/
nasm:http://www.nasm.us/
因为报错nasm not found,下了nasm,它是一个汇编语言编译程序。
2、环境变量:
添加NASM路径到path,然后可以试一下cmd,输入nasm -h;
还有perl的bin目录也放到path;
然后我把openssl文件夹整个放到了vs安装目录;
管理员模式运行VS 2017的开发人员命令提示符,切换到openssl的目录,输入perl Configure VC-WIN32;
结果出现:
It looks like you don't have either nmake.exe or dmake.exe on your PATH,
so you will not be able to execute the commands from a Makefile. You can
install dmake.exe with the Perl Package Manager by running:
ppm install dmake
那就 ppm install dmake ;(憋输入分号啊)
完成之后,输入ms\do_nasm,总提示:
'ms\do_nasm' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
发现VC自带的构建程序已经没有”ms\do”系列的程序了。。
找到stackoverflow说先输入nmake,要等一段时间;
然后可以输入nmake test检验,再等一段时间;
然后输入nmake install –prefix=DIR,就得到了一个叫OpenSSL的文件夹,里面有lib,include,bin,html。
感觉比原来省了很多步骤,大概是一次都安装了吧。
最后,最后,非常伤心,openssl有编译好的版本,上面这些步骤就不用了……不过训练了一遍编译过程,应该说自己编译的版本相比二进制版本更安全。
然后是vs项目配置:
右击新建的c++项目,属性,VC++目录,包含目录添加OpenSSL里面include的目录(我的是D:\come here apps\security\OpenSSL\include),库目录加上lib目录(D:\come here apps\security\OpenSSL\lib);
链接器目录,输入,附加依赖项添加libcrypto.lib;libssl.lib。
(由原先的libeay.lib、ssleay.lib变成了libcrypto.lib、libssl.lib)
这样直接编译还是会报错,缺失libcrypto-1_1.dll,这里需要把Openssl里的bin文件夹中的libcrypto-1_1.dll,libssl-1_1.dll两个文件拷到工作目录文件夹与工程同名的文件夹里面,跟.h文件,.cpp文件放在一起
然后就可以加入头文件跑起来了。