VS下OPenssl环境配置,个人些出现的问题及解决

来源:互联网 发布:java 设置中奖率 编辑:程序博客网 时间:2024/05/29 12:27
一、预安装准备


1、安装Visual Studio 2005


如果安装的是VC++60,实际在编译OpenSSL时,总是会缺少某些文件,比如ml.exe,cl.exe....还有masm错误等,头都大了,还等着要测试,没时间一点点去试,直接换成Visual Studio 2005了。


2、安装Perl


下载地址:http://www.activestate.com/ActivePerl


天缘安装的ActivePerl-5.8.6.811-MSWin32-x86-122208.msi版本,太高版本没用。默认安装目录C:\Perl。


3、下载OpenSSL 0.9.8


下载地址:http://www.openssl.org/source/,版本不要太新(如果是做产品开发建议用最新的,前期测试所有软件都可以用老一点的,会少一些兼容问题,新版本往往跨度较大,修改较多,多个软件配合时自然很容易打架)。


如果只是使用OPENSSL,而且版本合适,可以尝试人家编译好了的,直接下载安装即可:


http://www.openssl.org/related/binaries.html


二、安装OpenSSL


1、解压OpenSSL到系统盘


比如C:\OpenSSL。


2、配置WIN32环境


打开CMD命令行,进入C:\OpenSSL目录,执行命令


perl Configure VC-WIN32


3、进入VC BIN目录,配置VC环境变量


进入VS安装路径VC/Bin目录下,运行:


VCVARS32.BAT


设置环境变量。


4、返回OpenSSL目录,创建makefile文件


ms\do_ms


该命令不执行汇编语言编译,如报告文末错误,可以尝试ms\do_masm(使用汇编语言)、ms\do_nasm、ms\do_nt等,这几个配置文件是针对不同的系统配置写的批处理。


至于这几个命令区别如下,其它的暂时没用到未深究,有经验之士欢迎赐教。


- If you are using MASM then run:


> ms\do_masm


- If you are using NASM then run:


> ms\do_nasm


- If you don't want to use the assembly language files at all then run:


> ms\do_ms


5、在Openssl目录下,执行编译


nmake -f ms\ntdll.mak


在执行这步时,若出现nmake不存在命令,是VS没有配置
CL不存在命令时,是VS的VC没正确配置。
path = X:VS安装路径\VC\Bin;X:VS安装路径\Common7\IDE


.NMAKE:fatal error U1077.“cl.exe” return code 0xc0000135  情况同上
产生原因:在安装visual studio的时候没有勾选注册环境变量导致的。


解决办法:在系统环境变量中加入visual studio的安装路径:vs安装路径\VC\Bin,以及vs安装路径\Common7\IDE




.NMAKE:fatal error U1077. return code 0x2
产生原因:找不到代码文件中包含的头文件


解决办法:cmd下进入到vs安装路径\VC\Bin下,执行vcvars32,此时会执行vcvas32.bat自动为vs设置环境变量


若还是错误。。。
这个在openssl官方网站上找到了,方法是禁用IPV6


在openssl目录下执行下列命令
perl Configure VC-WIN32 -DOPENSSL_USE_IPV6=0






最终编译动态库完成后,输出都在out32dll目录下:包括可执行文件、两个dll 和两个lib文件: libeay32.dll, libeay32.lib, ssleay32.dll, ssleay32.lib,如果使用VS/VC编程只需按照下文的方法进行即可,如果需要使用openssl命令,还需要在系统环境变量path中增加c:\openssl\out32dll路径,因为openssl.exe就在该目录下,声明后可以直接在命令行中使用openssl命令。






三、编程设置


1、 配置包含文件


打开VS->Tools->Options->projects and solutions->VC++ Directories(VC6路径VC->Tools->Options->Directories),在Include files中增加C:\openssl\inc32目录,假设openssl安装目录为C:\openssl,下同。


在Libray files中增加C:\openssl\out32dll。


2、 包含头文件,导入LIB库


在源程序中包含以下三个头文件并加入LIB:


#include <openssl/ssl.h>
#include <openssl/err.h>
#include <openssl/bio.h>
#pragma comment(lib, "libeay32.lib")


#pragma comment(lib, "ssleay32.lib")
0 0
原创粉丝点击