win10 VS2017 安装OpenSSL
安装openssl走了很多弯路,记录一下。
1、下载原材料:
- OpenSSL:https://www.openssl.org/source/
- VS 2017:https://www.visualstudio.com/zh-hans/downloads/
- Naive Assembler:http://www.nasm.us/
因为报错nasm not found,下了nasm,它是一个汇编语言编译程序。
2、环境变量:
将NASM路径添加至path变量,并尝试运行以下命令:nasm -h;
此外,在path中还需要包含perl语言的bin目录。
然后我把openssl文件夹整个放到了vs安装目录;
以管理员身份启动Visual Studio 2017,在命令提示符窗口中切换至openssl文件夹,并执行perl配置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。为了修复此问题,在项目根目录下创建一个bin目录,并将这两个库文件(libcrypto-1_1.dll和libssl-1_1.dll)放置其中。然后将这些二进制文件与工程相关的头文件(.h)和源代码文件(.cpp)放在同一目录下即可解决问题。

然后就可以加入头文件跑起来了。
