最近项目要用到soap编程,本机测试ok,但是访问远程主机提示tcp_connect()失败,网上说要soap_ssl_init();soap_ssl_client_context();但是编译报错,说是各种错误暂时归结于openssl。于是先搭建openssl环境。
本人系统:window8 64
开发环境:VS2008
准备工具:perl、openssl、nasm、VC
perl:Perl 在 Window 平台上有 ActiveStatePerl 和 Strawberry Perl 编译器。本人使用的是Strawberry Perl 。http://strawberryperl.com/
openssl:不要使用1.1.1版本,此文章发表时最新版本是1.1.1。可以下载1.0.2版本。http://www.openssl.org在download页面推荐选择1.0.2版本
nasm:编译openssl过程中可能会用到nasm,否则提示NASM not found。https://www.nasm.us/
VC:选择VC6或以上版本,本人已使用VS2008,故不赘述。
1.安装perl、nasm
下载perl、nasm,安装过程很简单,一直next即可
2.解压openssl
下载openssl,解压,路径随意,压缩包中有一个总目录,不用怕解压为零散文件
openssl不要选在1.1.1
openssl不要选在1.1.1
openssl不要选在1.1.1
重要的事情说三遍,否则即使过程顺利,结果也不尽如人意。缺少部分东西
3.打开命令行
cd 到openssl的解压目录,就是有apps、bugs、certs等目录的地方
a.执行:perl Configure VC-WIN32
如果没装nasm可能提示NASM not found,所以要安装nasm。并设置环境变量。
b.执行:ms\do_nasm.bat
c.设置VS2008的环境变量,用于执行nmake,nmake默认不能用的,如果能用,忽略此步骤
c:
cd C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin
vcvars32.bat
本人为VS2008开发环境,所以路径如上,其他版本可能路径不一样
d.执行:nmake -f ms\ntdll.mak -a
这是生成静态库+动态库
如果只需要静态库则执行:nmake -f ms\nt.mak -a
网上有说执行ms\do_ms.bat的,可能会报错
tmp32dll\sha1-586.asm(1427) : error A2070:invalid instruction operands
tmp32dll\sha1-586.asm(1571) : error A2070:invalid instruction operands
过程有点久
4.out32dll目录中会有libeay.lib、libeay.dll、ssleay32.lib、ssleay32.dll等很多文件,本人只需要其中的libeay.lib、libeay.dll、ssleay32.lib、ssleay32.dll
inc32\openssl目录中有很多头文件。不是include目录
5.如果需要安装的话可以执行
nmake test
nmake install
也就是编译复制复制过程,默认复制到c:\Program Files(x86)\OpenSSL目录
提取到本人需要的文件就暂时不管了,