天天看點

使用VS2015編譯Synergyd曆程,解決Synergd.exe占用CPU高的問題

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,然後選擇輸出項目類型

使用VS2015編譯Synergyd曆程,解決Synergd.exe占用CPU高的問題

4、選擇合适的編譯器,點Finish

使用VS2015編譯Synergyd曆程,解決Synergd.exe占用CPU高的問題

5、點選Generate,生成項目檔案

使用VS2015編譯Synergyd曆程,解決Synergd.exe占用CPU高的問題

6、到輸出目錄找到 synergy.sln 在vs中打開項目

使用VS2015編譯Synergyd曆程,解決Synergd.exe占用CPU高的問題

7、修改項目屬性 ->配置屬性->正常->平台工具集->Visual Studio 2015 - Windows XP (v140_xp)

8、修改項目屬性 ->配置屬性->C/C++->代碼生成->運作庫->多線程(/MT)  (取消連接配接運作時)

9、按照步驟7、 8 修改所有依賴項目,詳細參考依賴項目說明。

10、編譯方式使用Release編譯

11、修改代碼後,即可編譯出自己想要的Synergy了

使用VS2015編譯Synergyd曆程,解決Synergd.exe占用CPU高的問題

synergyd依賴項目

synergy

platform

net

mt

ipc

io

common

base

arch

client

本次探索還是要網上各位大神的指導,讓我快速了解了CMake、Qt等強大的工具,寫此文也是想回饋廣大網友,由于個人水準有限,文采也不好,還請大神們路過輕拍,如果有描述的不對的,還請多多指點!

同時,本文隻是對守護服務程式Synergyd.exe進行了修改編譯,解決了CPU占用高的缺陷,測試未發現異常。針對系統為Windows系統,對于Linux和Mac平台的編譯本文不涉及。



繼續閱讀