涓嬭澆openvpn鏈鏂扮増鏈紝鐩墠紼沖畾鐗堟湰鏄痮penvpn-2.0.9 http://openvpn.net/
鎴戠殑鏈哄櫒鐜鏄?vc6.0 + vc2003 platform_sdk
涓嬭澆浠ュ悗瑙e帇錛宮ain鍑芥暟鍦╫penvpn.c鏂囦歡涓紝vc6鎵撳紑榪欐枃浠訛紝灝嗗叾瀹?.h *.c鏂囦歡鍏ㄩ儴鍔犲叆鍒板伐紼嬩腑錛岀紪璇戣繍琛岋紝鎶ヤ竴澶у爢閿?
include\winsock2.h(109) : error C2011: 'fd_set' : 'struct' type redefinition
include\winsock2.h(144) : warning C4005: 'FD_SET' : macro redefinition
include\winsock.h(88) : see previous definition of 'FD_SET'
include\winsock2.h(153) : error C2011: 'timeval' : 'struct' type redefinition
include\winsock2.h(209) : error C2011: 'hostent' : 'struct' type redefinition
include\winsock2.h(222) : error C2011: 'netent' : 'struct' type redefinition
include\winsock2.h(229) : error C2011: 'servent' : 'struct' type redefinition
include\winsock2.h(241) : error C2011: 'protoent' : 'struct' type redefinition
include\winsock2.h(397) : error C2011: 'sockaddr_in' : 'struct' type redefinition
include\winsock2.h(407) : error C2011: 'WSAData' : 'struct' type redefinition
.................................
榪欐槸鐢變簬<config-win32.h>鏂囦歡涓寘鍚簡
#include <windows.h>
#include <winsock2.h>
windows.h涓張鍖呭惈浜?lt;winsock.h>瀵艱嚧鍜寃insock2.h鍐茬獊錛岃В鍐蟲柟娉曟槸鍦╥nclude<windows.h>涔嬪墠娣誨姞瀹?
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
鍥犱負鐢ㄥ埌浜唚insock2.h 鎵浠ュ繀欏誨姞鍏ib鏂囦歡:ws2_32.lib
鍐嶆緙栬瘧錛屽嚭鐜板涓嬮敊璇?
mudp.c
this compiler appears to lack vararg macros which will cause a significant degradation in efficiency
e:\libtools\openvpn-2.0.9\lzo.h(32) : fatal error C1083: Cannot open include file: 'lzo1x.h': No such file or directory
multi.c
this compiler appears to lack vararg macros which will cause a significant degradation in efficiency
e:\libtools\openvpn-2.0.9\lzo.h(32) : fatal error C1083: Cannot open include file: 'lzo1x.h': No such file or directory
ntlm.c
this compiler appears to lack vararg macros which will cause a significant degradation in efficiency
occ.c
this compiler appears to lack vararg macros which will cause a significant degradation in efficiency
e:\libtools\openvpn-2.0.9\lzo.h(32) : fatal error C1083: Cannot open include file: 'lzo1x.h': No such file or directory
openvpn.c
#ifdef USE_LZO
#ifdef LZO_HEADER_DIR
#include "lzo/lzoutil.h"
#include "lzo/lzo1x.h"
#else
#include "lzoutil.h"
#include "lzo1x.h"
#endif
鍥犱負openvpn榛樿閰嶇疆鐢ㄥ埌浜唋zo鍘嬬緝搴擄紝鎵浠ヤ笅杞絣zo鍘嬬緝鍖?lzo-2.03,騫朵笖灝唋zo-2.03鍖呬腑鐨刬nclude鏂囦歡鍔犲叆鍒板伐紼嬩腑錛屾敞鎰忔枃浠剁洰褰曞眰嬈★紝鎴戞槸棰濆瀹氫箟浜唋zo鏂囦歡澶癸紝灝嗗ご鏂囦歡鍏ㄩ儴鍔犲叆榪涘幓鐨勶紝鍥犳蹇呴』鍔犱笂緙栬瘧閫夐」:LZO_HEADER_DIR
鍙﹂澶栫紪璇憀zo lib:
灝唋zo瑙e帇鑷矯鐩樻牴鐩綍錛屽湪鍛戒護琛屼腑璺寵嚦璇ョ洰褰曪紝榪愯b\win32\mc120.bat錛岀紪璇戞垚鍔熷悗鐢熸垚lzo.lib
灝嗙敓鎴愮殑lzo.lib娣誨姞鍒板伐紼嬩腑銆?br>鍙﹀鏋滀笉鏄敤lzo鍙互淇敼<config_win32.h>澶存枃浠? (openssl ssl crypto涔熷彲浠ヤ笉浣跨敤錛岃鍏蜂綋鎯呭喌)
/* Use OpenSSL crypto library */
#define USE_CRYPTO 1
/* Use LZO compression library */
#define USE_LZO 1
/* Use OpenSSL SSL library */
#define USE_SSL 1
/* Version number of package */
#define VERSION PACKAGE_VERSION
鎺ョ潃濡傛灉浣跨敤OpenSSL錛岄偅涔堥鍏堣涓嬭澆OpenSSL搴擄紝鐒跺悗緙栬瘧:
a.灝哋penSSL瑙e帇鍒癈鐩樻牴鐩綍涓嬶紱
b.鍦ㄥ懡浠ゆ彁紺鴻涓繘鍏ヨ鐩綍錛岃緭鍏erl Configure VC-WIN32錛屾楠宲erl鏄惁姝g‘瀹夎錛?br> c.鍛戒護琛屼腑杈撳叆ms\do_ms錛?br> d.鍛戒護琛屼腑杞埌Microsoft Visual Studio\VC98\bin錛岃繍琛寁cvars32.bat浠ラ厤緗幆澧冨彉閲忋?br> e.鍛戒護琛孫penSSL鐩綍涓嬶紝鎵цnmake –f ms\ntdll.mak 緙栬瘧鎴愬姛鍚庯紝鍦╫ut32dll鐩綍涓嬶紝浼氭湁鍥涗釜鏂囦歡libeay32.dll libeay32.lib ssleay32.dll鍜?ssleay32.lib,灝嗙紪璇戞垚鍔熺殑lzo.lib libeay32.lib ssleay32.lib娣誨姞鍒板伐紼嬩腑錛屽茍灝唋ibeay32.dll ssleay32.dll鎷瘋礉鍒癉ebug鐩綍涓?騫朵笖鍔犲叆openssl鐨勫ご鏂囦歡鍒板伐紼嬩腑錛屽拰lzo搴撶被浼肩殑榪囩▼銆?br>
鍙﹀鍥犱負VC涓笉璇嗗埆unsigned long long int綾誨瀷錛岄渶鏀逛負_int64銆備慨鏀?lt;common.h>澶存枃浠?
#ifdef USE_64_BIT_COUNTERS
// typedef unsigned long long int counter_type;
typedef _int64 counter_type; //qj modify
# ifdef WIN32
# define counter_format "%I64u"
# else
# define counter_format "%llu"
# endif
#else
typedef unsigned int counter_type;
# define counter_format "%u"
#endif
鍐嶆緙栬瘧錛屽彂鐜伴敊璇皯澶氫簡錛岃屼笖鍏ㄩ儴鍙槸涓浜沴ink閿欒浜?
Linking
LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library
cryptoapi.obj : error LNK2001: unresolved external symbol __imp__CertFreeCertificateContext@4
cryptoapi.obj : error LNK2001: unresolved external symbol __imp__CryptAcquireCertificatePrivateKey@24
cryptoapi.obj : error LNK2001: unresolved external symbol __imp__CertCloseStore@8
cryptoapi.obj : error LNK2001: unresolved external symbol __imp__CertOpenStore@20
cryptoapi.obj : error LNK2001: unresolved external symbol __imp__CertFindCertificateInStore@24
route.obj : error LNK2001: unresolved external symbol _GetIpForwardTable@12
route.obj : error LNK2001: unresolved external symbol _CreateIpForwardEntry@4
route.obj : error LNK2001: unresolved external symbol _DeleteIpForwardEntry@4
tun.obj : error LNK2001: unresolved external symbol _GetAdaptersInfo@8
tun.obj : error LNK2001: unresolved external symbol _IpReleaseAddress@4
tun.obj : error LNK2001: unresolved external symbol _GetInterfaceInfo@8
tun.obj : error LNK2001: unresolved external symbol _IpRenewAddress@4
tun.obj : error LNK2001: unresolved external symbol _AddIPAddress@20
tun.obj : error LNK2001: unresolved external symbol _FlushIpNetTable@4
tun.obj : error LNK2001: unresolved external symbol _DeleteIPAddress@4
tun.obj : error LNK2001: unresolved external symbol _GetAdapterIndex@8
Debug/openvpn.exe : fatal error LNK1120: 16 unresolved externals
Error executing link.exe.
openvpn.exe - 17 error(s), 1 warning(s)
棣栧厛瑙e喅crytoapi.obj鐨刲nk閿欒錛屾壘鍒癱rytoapi.c鏂囦歡涓殑CertFreeCertificateContext
鍑芥暟錛屾壘鍒板叾澹版槑:WinCrypt.h鏂囦歡錛?br>
#include <wincrypt.h> //闇瑕佽PLATFORM SDK
#pragma comment (lib, "crypt32.lib")
鐒跺悗瑙e喅route.obj tun.obj鐨勯棶棰橈紝涔熸槸閫氳繃route.c鏂囦歡涓殑 GetIpForwardTable絳夊叾涓竴涓猯ink閿欒鐨勫嚱鏁幫紝鎵懼埌鍏跺0鏄庢枃浠?IPHlpApi.h
#include <iphlpapi.h>
#pragma comment (lib, "iphlpapi.lib")
鏈鍚庡啀嬈$紪璇戯紝OK錛屽紑濮嬩綘鐨刼penvpn浠g爜璋冭瘯鍚э紒錛侊紒

]]>