VS2017 openssl1.0.2

1、安装
(1)安装vs2017
(2)安装perl
*一般这两步不会出错
(3)编译openssl
使用的是openssl1.0.2n版本,使用openssl1.0.1版本时出错未找到原因,换到1.0.2版本成功编译。
*解压时需要用管理员身份解压
①打开cmd,运行vcvars32.bat(设置编译环境为32位,生成32位的库)

cd \Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
vcvars32.bat

运行显示

[vcvarsall.bat] Environment initialized for: ‘x86’

*这一步可直接打开适用于VS2017的x86本机工具命令提示符,都是设定编译环境。

②编译动、静态库(查看INSTALL.W32文件)
转至openssl根目录下:

cd \deps\openssl

配置:

perl Configure VC-WIN32 no-asm --prefix=c:/deps/openssl
ms\do_ms

no-asm表示不用汇编,–prefix=设置 lib include bin 目录的路径
动态库编译:

nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak install

test后会显示通不通过,第一步生成文件夹out32dlltmp32dll

静态库编译:

nmake -f ms\nt.mak
nmake -f ms\nt.mak test
nmake -f ms\nt.mak install

第一步生成文件夹out32tmp32

③安装时遇到问题:

.\ssl\bad_dtls_test.c: error C2220: 警告被视为错误 - 没有生成“object”文件
.\ssl\bad_dtls_test.c: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
NMAKE : fatal error U1077: ““C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\cl.EXE””: 返回代码“0x2”
Stop.

搜索找到解决办法:
找到ms文件夹下nt.mak\ntdll.mak文件中的CFLAG,将 -W3改为 -W0,或者直接将其删除,目的是降低其警告级别。
在下一次编译之前要清除上次的编译遗留,即若出现问题,要先

nmake -f ms\nt.mak clean

nmake -f ms\ntdll.mak clean

再重新编译。

2、配置
(1)右击Project属性:
——C/C++——常规——附加包含目录:添加C:\deps\openssl\include(头文件路径)
——链接器——常规——附加库目录:添加:C:\deps\openssl\out32dll(lib路径)
——链接器——输入——附加依赖项:添加libeay32.lib、ssleay32.lib(lib库)
(2)将libeay32.lib、ssleay32.lib复制到==.cpp==文件所在文件夹下
(3)配置中遇到的问题:
①提示函数不安全

`‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
可以按照要求修改函数,也可以在==#include<>==之前添加

#define _CRT_SECURE_NO_WARNINGS

②提示无法查找或打开文件,例如

“Project1.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。

通过查找资料,设置如下:
工具——选项——调试——常规:勾选 启动源服务器支持
工具——选项——调试——符号:勾选 Microsoft 符号服务器
运行即可解决。可以在运行完之后取消勾选。

③控制台闪退
右击project属性:
——链接器——系统——子系统:选择 控制台 (/SUBSYSTEM:CONSOLE)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值