用VS2017编译OpenvpnServ-V2.4.6 win7下用vs2017编译OpenVpn2.4.6源码并生成客户端

用VS2017编译OpenvpnServ.exe

壹、准备工作

一、下载openvpn2.4.6:请前往官网下载:https://www.openvpn.net/截止发稿时,最新的OpenVpn的版本是2.4.6

二、创建工程

1、用vs2017新建一个工程,OpenvpnServ,选择空项目

2、将openvpn-2.4.6/src/openvpnserv/下的所有*.c,*.h文件复制到新工程目录下,并加载到工程中。

三、错误解决

    1、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	C1083	无法打开包括文件: “config-msvc.h”: No such file 
    请参考:

win7下用vs2017编译OpenVpn2.4.6源码并生成客户端


2、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误(活动)	E1282	无法连接带有不同字符种类的字符串	OpenVpnServ	

将automatic.c文件中的openvpn_service_t的定义改变为:

openvpn_service_t automatic_service = {
	automatic,
	PACKAGE_NAME "ServiceLegacy",
	//TEXT(PACKAGE_NAME "ServiceLegacy"),
	PACKAGE_NAME" Legacy Service",
	//TEXT(PACKAGE_NAME " Legacy Service"),
	SERVICE_DEPENDENCIES,
	//TEXT(SERVICE_DEPENDENCIES),
    SERVICE_DEMAND_START
};

同样地,把其他类似的地方,都把text去掉。且把工程的字符集设置为多字节字符集


3、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	C2011	“sockaddr”:“struct”类型重定义	OpenVpnServ	
添加预处理器定义  WIN32_LEAN_AND_MEAN


    4、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	C1083	无法打开包括文件: “block_dns.h”: No such file or directory	OpenVpnServ	
这个文件在openvpn的工程中,所以把openvpn目录添加到openserv的c++包含目录中



5、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	LNK2019	无法解析的外部符号 __vsnprintf,该符号在函数 _openvpn_vsntprintf 中被引用	OpenVpnServ		

添加附加依赖项:legacy_stdio_definitions.lib


6、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	LNK2019	无法解析的外部符号 _FlushIpNetTable@4,该符号在函数 _HandleFlushNeighborsMessage 中被引用	OpenVpnServ		

添加附加依赖项:Iphlpapi.lib


7、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	LNK2019	无法解析的外部符号 _CreateEnvironmentBlock@12,该符号在函数 _RunOpenvpn@4 中被引用	OpenVpnServ

添加附加依赖项:Userenv.lib


8、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	LNK2019	无法解析的外部符号 __imp__RtlIpv4AddressToStringW@8,该符号在函数 _HandleDNSConfigMessage 中被引用	OpenVpnServ	
添加附加依赖项: Ntdll.lib


9、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	LNK2019	无法解析的外部符号 _delete_block_dns_filters,该符号在函数 _HandleBlockDNSMessage 中被引用	OpenVpnServ	
block_dns.h  和 block_dns.c 文件添加到工程中
10、
严重性	代码	说明	项目	文件	行	禁止显示状态
错误	LNK2019	无法解析的外部符号 _FwpmFreeMemory0@4,该符号在函数 _add_block_dns_filters 中被引用	OpenVpnServ		

添加附加依赖项:
Fwpuclnt.lib


11、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	LNK2019	无法解析的外部符号 _NetLocalGroupGetMembers@32,该符号在函数 _IsUserInGroup 中被引用	OpenVpnServ		

添加附加依赖项:Netapi32.lib

12、

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	LNK2019	无法解析的外部符号 __imp__PathIsRelativeW@4,该符号在函数 _CheckConfigPath 中被引用	OpenVpnServ		
添加附加依赖项: Shlwapi.lib


编译完成。生成通过









猜你喜欢

转载自blog.csdn.net/sspdfn/article/details/80735131
今日推荐