使用Visual Studio 2010编译OpenVPN.doc_第1页
使用Visual Studio 2010编译OpenVPN.doc_第2页
使用Visual Studio 2010编译OpenVPN.doc_第3页
使用Visual Studio 2010编译OpenVPN.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 前期准备理论上来讲,要在vs2010上编译OpenVPN,只要用vs新建一个空工程,然后把OpenVPN的源码拖进去编译一下就行了。事实上也是这样的,只不过OpenVPN依赖的东西太多了,比如openssl,lzo等。所以这里首先将它需要的东西准备好。1. 需要软件包(假定已经安装好了vs2010)ActivePerl_5.16.2.3010812913.msi (编译openssl需要)lzo-2.03.tar.gz (编译OpenVPN需要,打包用的)openssl-0.9.8g.tar.gz (编译OpenVPN需要,加解密用的)pkcs11-helper-1.07.tar.bz2 (编译OpenVPN需要,用于证书,数字签名之类的)openvpn-2.0.9.tar.gz (OpenVPN源码包)2. 编译openssl1) 安装ActivePerl_5.16.2.3010812913.msi2) 解压openssl-0.9.8g.tar.gz到C盘3) 启动vs2010的命令行模式(不要直接cmd)开始菜单-Microsoft Visual Studio 2010-Visual Studio Tools-Visual Studio 命令提示(2010)4) 进入openssl目录D:Program FilesMicrosoft Visual Studio 10.0VCc:C:cd C:openssl-0.9.8g5) 使用命令msdo_masm.batC:openssl-0.9.8gmsdo_masm.bat6) 使用命令nmake -f msntdll.mak生成静态库和动态库C:openssl-0.9.8gnmake -f msntdll.mak当这个命令执行完成后,会在C:/openssl-0.9.8g目录下生成:out32dll, tmp32dll, inc32三个目录。 out32dll:是存储的是生成的动态,静态库,后面生成OpenVPN时候需要这些库支持(libeay32.dll libeay32.lib ssleay32.dll ssleay32.lib) tmp32dll:是存储的是编译过程中生成的目标文件 inc32: 是头文件哈,在开发的时候需要包含的openssl的头文件所在的目录7) 测试库是否正确,执行命令:C:/openssl-0.9.8gnmake -f msntdll.mak test当看到passed all tests 出现时,就说明我们生成的库是正确的。3. 编译lzo1) 解压lzo-2.03.tar.gz到C盘2) 进入该目录D:Program FilesMicrosoft Visual Studio 10.0VCc:C:cd C:lzo-2.033) 使用命令bwin32vc.batC:lzo-2.03bwin32vc.bat命令成功执行后会在C:/lzo-2.03目录下生成lzo2.lib库4. 编译pkcs11-helper1) 解压pkcs11-helper-1.07到C盘2) 进入该目录的lib文件夹D:Program FilesMicrosoft Visual Studio 10.0VCc:C:cd C:pkcs11-helper-1.07lib3) 使用命令nmake -f Makefile.w32-vc OPENSSL=1 OPENSSL_HOME=c:openssl-0.9.8gC:pkcs11-helper-1.07libnmake -f Makefile.w32-vc OPENSSL=1 OPENSSL_HOME=c:/openssl-0.9.8g若成功,会在C:pkcs11-helper-1.07/lib下生成了libpkcs11-helper-1.dll和pkcs11-helper.lib4) 可能遇到问题,需要作如下操作A. 打开C:/pkcs11-helper-1.07/lib/pkcs11h-threading.c 文件第477行ret = (unsigned)(_data-start (_data-data) - (void*)0); 改为ret = (unsigned)(_data-start (_data-data);B. 打开C:/pkcs11-helper-1.07/lib/Makefile.w32-vc 文件将!ifdef OPENSSLOPENSSL_STATIC = libeay32.lib#OPENSSL_STATIC = libeay32sd.libOPENSSL_DYNAMIC = libeay32.lib#OPENSSL_DYNAMIC = libeay32d.lib改为!ifdef OPENSSL OPENSSL_STATIC = C:/openssl-0.9.8g/out32dll/libeay32.lib#OPENSSL_STATIC = libeay32sd.libOPENSSL_DYNAMIC = C:/openssl-0.9.8g/out32dll/libeay32.lib#OPENSSL_DYNAMIC = libeay32d.lib二、 使用Visual Studio 2010编译OpenVPN(这个步骤不同的版本可能会出现不同的问题,请根据出现的提示Google或百度之。)1. 新建一个空的win32控制台程序,取名OpenVPN2. 把openvpn-2.0.9解压到工程目录,文件夹改名为code3. 把code中所有文件添加到工程4. 删除config-win32.h文件中的#include 行5. 工程属性-配置属性-常规-项目默认值-字符集 改为:使用多元字节符集6. 工程属性-配置属性-VC+ 目录-包含目录 添加如下几个C:pkcs11-helper-1.07includeC:lzo-2.03includeC:openssl-0.9.8ginc327. 工程属性-配置属性-链接库-附加库目录 添加如下几个C:pkcs11-helper-1.07libC:lzo-2.03C:openssl-0.9.8gout32dll8. 工程属性-配置属性-链接库-输入-附加依赖性 添加如下几个pkcs11-helper.liblibeay32.libssleay3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论