Synergy简介
功能:
同一局域网中多台机器共享一套键盘鼠标,支持Windows、Linux、MAC设备,鼠标键盘物理连接的机器做服务器端,其他机器做客户端程序,在服务器端对各台机器进行简单配置,在客户端输入服务器端IP地址或网络名,即可体验其强大功能。
特点:
开源、配置简单、功能强大
结构:
synergy.exe - 主程序,或者说是synergy的UI配置程序
synergys.exe - 服务器端程序,配置为服务器端的电脑,该进程会常驻内存
synergyc.exe - 客户端程序,配置为客户端的电脑,该进程会常驻内存
synergyd.exe - 看门狗服务,此服务关闭后,一段时间内,还可以实现鼠标键盘的共享,但是过了这段时间,服务器和客户端将断开连接(暂时没有深入研究内部的细节)
有关Synergy的更多细节,网上已经有很多介绍,这里不再赘述。
编译动机
鄙人已经与Synergy相处两年有余,由于其种种有点,经常在公司推荐与他人使用,屡屡获赞,近期偶然发现测试机卡慢,用任务管理器一探究竟,猛然发现,居然是神器(Synergy)在作怪,服务程序(synergyd.exe)独占一个CPU内核,鄙人公司用的测试机还是双核的,有些甚至是单核的。于是决定重新编译一下Synergyd.exe,其他进程暂时未发现异常,暂不处理。
准备工作
手头有VS2012、据github介绍。需要装VS2015、Qt5.6、CMake、Python、Wix、Bonjour SDK,进行种种配置,于是乎,开始安装VS2015(整整一天呐@_@)
安装Qt,最后发现这些东西用到的不多,此处省略吐槽一万次。。。
步入正题:
1、下载最新的Synergy源码
2、VS任意一个版本(鄙人对VS还算比较熟悉,也是因为之前的误导,体验了一下VS2015)
3、如果不喜欢VS,可以使用其他任意一款C++编译工具(本文只谈VS的编译过程,其他编译工具可能有所差别)
4、CMake
操作步骤
1、CMake和源码解压
2、CMake Bin 目录下执行gui程序
3、将源码位置配置到CMake中,然后执行Configure,然后选择输出项目类型
4、选择合适的编译器,点Finish
5、点击Generate,生成项目文件
6、到输出目录找到 synergy.sln 在vs中打开项目
7、修改项目属性 ->配置属性->常规->平台工具集->Visual Studio 2015 - Windows XP (v140_xp)
8、修改项目属性 ->配置属性->C/C++->代码生成->运行库->多线程(/MT) (取消连接运行时)
9、按照步骤7、 8 修改所有依赖项目,详细参考依赖项目说明。
10、编译方式使用Release编译
11、修改代码后,即可编译出自己想要的Synergy了
synergyd依赖项目
synergy
platform
net
mt
ipc
io
common
base
arch
client
本次探索还是要网上各位大神的指导,让我快速了解了CMake、Qt等强大的工具,写此文也是想回馈广大网友,由于个人水平有限,文采也不好,还请大神们路过轻拍,如果有描述的不对的,还请多多指点!
同时,本文只是对守护服务程序Synergyd.exe进行了修改编译,解决了CPU占用高的缺陷,测试未发现异常。针对系统为Windows系统,对于Linux和Mac平台的编译本文不涉及。