首页 > C/C++ > VC2010 编译 openvpn-2.2-RC2
2011
03-29

VC2010 编译 openvpn-2.2-RC2

vc10 编译 openvpn-2.2-RC2

 

新建一个空的控制台程序,把openvpn-2.2-RC2里面的头文件,和源文件(除了memcmp.c这个文件)都加到项里

1.编译openssl-1.0.0d

cmd 运行(注带引号一起运行): “E:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat”

进入openssl 目录
输入perl Configure VC-WIN32

运行: ms\32all.bat,注意,因为perl脚本使用的是openssl根目录路径为相对路径的当前路径,所以必需在根目录下执行此批处理。

在out32dll目录下,会有四个文件libeay32.dll libeay32.lib ssleay32.dll和 ssleay32.lib,将编译成功的libeay32.lib ssleay32.lib添加到工程中,并将libeay32.dll ssleay32.dll拷贝到Debug目录下,并且加入openssl的头文件到工程中

2.编译lzo-2.04

我们接着上面的cmd编译完先不要关
然后进入lzo-2.04目录

运行: B\win32\vc.bat

然后将编译成功的lzo2.lib加入openvpn 项目里

3.编译pkcs11-helper

进入pkcs11-helper-1.08\lib目录
nmake -f Makefile.w32-vc OPENSSL=1 OPENSSL_HOME=..\..\openssl

然后再把pkcs11-helper.dll.lib加入openvpn 项目里

4.编译openvpn-2.2-RC2

cmd 进入openvpn-2.2-RC2\win 目录里运行
python config_all.py

然后openvpn-2.2-RC2就多出
msvc.mak
configure.h
config.h
autodefs.h
然后在config.h
最前面加
#define WIN32_LEAN_AND_MEAN

找到这行
/* #define USE_PKCS11 1 */
去了注释,让它支持pkcs11-helper
然后把这样加入到头文件路径里
openssl\include
lzo\include
pkcs11-helper\include

lib文件路径里
openssl\out32dll
lzo
pkcs11-helper\lib
编译出错了,
我们要再加入
crypt32.lib
ws2_32.lib
iphlpapi.lib
wininet.lib

到这个项目里

然后就编译成功了

5.编译service-win32

cmd 运行 “E:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat”

进入openvpn-2.2-RC2\service-win32 目录里运行

nmake -f msvc.mak

里面有个重定义警告我们可以不用管他
参考文献:
http://www.cppblog.com/qiujian5628/archive/2008/10/21/64613.html

最后编辑:
作者:dnybz
这个作者貌似有点懒,什么都没有留下。