前言:之前工作远程公司电脑一直用的teamviewer,因为没钱购买,总是遭遇超时限制使用的尴尬。后来用了国产的一个远程工具向日葵,确实不错,免费使用,也挺流畅的,缺点就是非付费用户只能远程一台机器(表示理解)。用久了也想自己弄个来耍耍,开源代码很多,下面选定UltraVNC,在此基础上做些符合自己使用习惯的修改,首先从编译开始。
1.源码
github上源码地址:https://github.com/ultravnc/UltraVNC
说明:官网上有源码可以下载,不过实在是太慢了,推荐github上下载就行了。
2.编译
编译版本:1.3.2a
编译器:visual studio 2017
说明:源码维护的还算可以,没有太多编译问题,直接编译通过即可。使用上编译通过winvnc、vncviwerl两个工程,获得可执行文件winvnc.exe、vncviewer.exe,分别对应服务器端(等待接入)和客户端(用来接入),拷贝到环境运行即可开始远程。
问题记录
1.e:\code\github\ultravnc\vncviewer\keymap.h(173): error C2001: 常量中有换行符
解决:看输出错误那么多,一脸懵逼。不过仔细想想也简单。就是keymap.h这个文件编码不是Unicode,ide加载文件自动转Unicode载入了,然后转的还有还有问题,就是乱码了。我的解决方法是直接github上看文件内容,把文件内容全部复制覆盖到ide打开的文件,问题解决。
2.1>LINK : fatal error LNK1104: 无法打开文件“zlibstat.lib”
解决:zlibstat这个库没有,编译出来就好。UltraVNC代码里是有zstd-1.4.4代码的,不过缺少文件编译不过。具体就是从github把zstd源码下载下来,把缺少的文件拷贝到UltralVnc工程里,即可编译通过。UltraVnc工程里有把这个库编译转的2017工程的,统一用2017工程编译吧。
zstd源码地址:https://github.com/facebook/zstd
3.nasm找不到问题,上官网下载这个编译器安装即可。
nasm官网地址:https://www.nasm.us/