最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Synergy編譯、去激活、漢化:macOS+Windows保姆級(jí)教程

2022-10-12 15:14 作者:Snnnotname  | 我要投稿

補(bǔ)充(2022-12-04):

源碼和安裝包放到github上了

https://github.com/FLZeng/synergy-core/releases



最近添了一臺(tái)M1芯片的MBP,之前用的鍵鼠共享軟件Mouse without Borders沒有macOS版本,于是又想起來開源的Synergy,可以編譯一個(gè)macOS版本,順便也編譯了新版的Windows版本,并且修了源碼中的一些bug。

編譯好的文件放到藍(lán)奏云了,非技術(shù)黨用戶不用看后面的編譯教程,下載就能用:

地址:https://wwp.lanzoub.com/b02dremyd

密碼:5auq

下載地址


包含三個(gè)文件:

  • Synergy-1.14.6-macOS-arm64.dmg是macOS的安裝包,使用于Apple Silicon(M1系列、M2);

  • Synergy-1.14.6-Win-x64-Installer.zip是Windows 64位的安裝包,解壓后得到msi文件(因?yàn)樗{(lán)奏云不支持上傳msi格式);

  • Synergy-1.14.6-Win-x64-Portable.zip是Windows 64位便攜版,解壓免安裝,直接運(yùn)行synergy。

macOS版和Windwos便攜版運(yùn)行為桌面程序模式(Desktop),可以在應(yīng)用首選項(xiàng)中最小化到托盤;Windows安裝版運(yùn)行為服務(wù)模式(Service),安裝后會(huì)注冊(cè)一個(gè)Windows服務(wù),首次配置后不再需要啟動(dòng)圖形界面,后臺(tái)服務(wù)自動(dòng)運(yùn)行。

1. 獲取源碼

從Github代碼倉(cāng)庫(kù)獲取,當(dāng)前最新版本是1.14.6:

git clone https://github.com/symless/synergy-core.git

2. macOS平臺(tái)編譯Synergy

編譯過程主要參考官方文檔:https://github.com/symless/synergy-core/wiki/Compiling,但是有一些坑。


2.1 安裝xcode

直接從App Store安裝xcode,會(huì)自動(dòng)裝上開發(fā)工具鏈。安裝后要打開一次,選擇同意license,然后就不用管了。


2.2 安裝brew

brew是macOS的包管理工具,后面要用它來安裝一些依賴包。直接執(zhí)行官方腳本會(huì)報(bào)錯(cuò),需要先把腳本下載下來,把里面的源改成國(guó)內(nèi)源。

curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh > install.sh

修改腳步里的這兩個(gè)變量,替換為中科大源:

HOMEBREW_BREW_DEFAULT_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
HOMEBREW_CORE_DEFAULT_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"

然后執(zhí)行腳本安裝:

chmod a+x install.sh
sh -C ./install.sh


2.3 安裝cmake

brew install cmake libsodium


2.4 安裝OpenSSL

brew install openssl

編輯~/.zshrc,添加openssl執(zhí)行路徑:

export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"


2.5 安裝Qt 5

2.5.1 問題

我先是安裝了最新版本的Qt 6,然后發(fā)現(xiàn)Synergy是用Qt 5寫的,編譯提示語(yǔ)法不支持,于是只好換成Qt 5。 最后一個(gè)長(zhǎng)期支持版是Qt 5.12.12,但社區(qū)預(yù)編譯的Qt是x86架構(gòu),而我M1的mac是arm64架構(gòu),雖然通過rosetta轉(zhuǎn)譯可以運(yùn)行,但編譯時(shí)就會(huì)遇到問題:

  • 無法編譯成x86架構(gòu)的程序:因?yàn)橐蕾嚨陌∣penSSL)是arm64架構(gòu);

  • 無法編譯成ARM64架構(gòu)的程序:因?yàn)橐溄拥腝t二進(jìn)制庫(kù)是x86架構(gòu);

只有把二者的架構(gòu)統(tǒng)一才能成功編譯。我選擇把Qt換成arm64架構(gòu)的,官方?jīng)]提供,那就自己編譯。


2.5.2 編譯安裝Qt

先裝幾個(gè)依賴:

brew install pcre2 harfbuzz freetype

編譯Qt Creator(不是必須)還要裝另外幾個(gè):

brew install ninja python
brew install --build-from-source llvm

之前安裝的Qt 5.12.12可以保留,因?yàn)槲覀冎皇切枰猘rm64版本的Qt庫(kù),Qt Creator無所謂,省得自己編譯。

然后下載Qt源碼,Qt 5的最后一個(gè)版本是5.15.6:

https://download.qt.io/archive/qt/5.15/5.15.6/single/qt-everywhere-opensource-src-5.15.6.tar.xz

解壓后進(jìn)入代碼目錄,建立一個(gè)build目錄:

cd qt-everywhere-src-5.15.6
mkdir build
cd build

配置、編譯、安裝:

../configure -release -prefix /usr/local/share/qt-5.15.6 -nomake examples -nomake tests QMAKE_APPLE_DEVICE_ARCHS=arm64 -opensource -confirm-license -skip qt3d -skip qtwebengine
make -j8
make install

編譯好的Qt就被安裝到了/usr/local/share/qt-5.15.6目錄下。編輯~/.zshrc,添加Qt執(zhí)行程序路徑:

export PATH="/usr/local/share/qt-5.15.6/bin:$PATH"

官方教程:

https://wiki.qt.io/Building_Qt_5_from_Git


2.5.3 配置Qt Creator

如果想繼續(xù)編譯Qt Creator,可以參考下面兩個(gè)文檔:

https://www.reddit.com/r/QtFramework/comments/ll58wg/how_to_build_qt_creator_for_macos_arm64_a_guide/
https://github.com/qt-creator/qt-creator/blob/master/README.md#compiling-qt-creator

也可以下載官方編譯的x86架構(gòu)的包:

https://download.qt.io/official_releases/qtcreator/

我是通過online installer安裝的。 然后打開Qt Creator,進(jìn)入?Preferences-Kits-Qt Versions?選項(xiàng)卡,點(diǎn)擊添加按鈕(或者是Link with Qt,記不清了),地址填 /usr/local/share/qt-5.15.6/bin/qmake?,會(huì)自動(dòng)識(shí)別目錄下的工具鏈,然后點(diǎn)OK完成:

添加自編譯的Qt

進(jìn)入 Preferences-Kits-CMake 選項(xiàng)卡,點(diǎn)擊Add,Name隨便填,我是“brew CMake”,Path填 /opt/homebrew/bin/cmake:

添加cmake

再進(jìn)入 Preferences-Kits-Kits 選項(xiàng)卡,點(diǎn)擊Add,Compiler選 Apple Clang (arm64),Qt version選剛剛添加的 Qt 5.15.6,Cmake Tool選剛剛添加的brew Cmake,然后在Environment中加上 MAKEFLAGS=-j8,開啟多核編譯:

配置編譯工具鏈


2.5.4 OpenSSL庫(kù)文件路徑的問題

在/etc/profile、~/.bashrc等文件中添加的環(huán)境變量,只在shell中生效,啟動(dòng)Qt Creator仍然沒有獲取到。為了讓環(huán)境變量在Qt Creator中生效,有兩種解決方法:

方法1:從shell啟動(dòng)Qt Creator

export OPENSSL_ROOT_DIR="/opt/homebrew/opt/openssl@3"
/usr/local/share/qt-5.12.12/Qt\ Creator.app/Contents/MacOS/Qt\ Creator

方法2:使用launchctl命令添加環(huán)境變量

launchctl setenv OPENSSL_ROOT_DIR "/opt/homebrew/opt/openssl@3"

然后啟動(dòng)Qt Creator就可以獲取了。


2.6 編譯Synergy

在Qt Creator中點(diǎn)擊文件-打開文件或項(xiàng)目,打開synergy-core/CMakeLists.txt:

導(dǎo)入synergy-core項(xiàng)目

然后在項(xiàng)目配置中選擇剛剛配置的Desktop Qt-5.15.6 kit,展開詳情,只勾選Release,然后點(diǎn)擊Configure Project:

配置工具鏈

會(huì)自動(dòng)執(zhí)行cmake,等執(zhí)行完成后,在項(xiàng)目上右鍵,點(diǎn)擊構(gòu)建,開始編譯,編譯完成后顯示cmake正常退出:

構(gòu)建

然后在synergy-core同級(jí)目錄下可以看到build-synergy-core-xxx/目錄下,生成了bin/synergy系列可執(zhí)行文件,以及bundle/Synergy.app:

構(gòu)建結(jié)果


2.7 命令行編譯Synergy(Optional)

也可以使用命令行編譯,這樣就不需要Qt Creator了:

cd synergy-core
mkdir build
cd build
export QT_PATH=/usr/local/share/Qt5.15.6
export PATH=$PATH:/usr/local/bin:$QT_PATH/bin
cmake -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl@3 -DOPENSSL_LIBRARIES=/opt/homebrew/opt/openssl@3/lib -DCMAKE_OSX_DEPLOYMENT_TARGET=12.6 -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE ..
make

這樣編譯的結(jié)果在synergy-core/build目錄下。


2.8 打包Synergy.app

在Synergy.app上右鍵,點(diǎn)擊顯示包內(nèi)容,然后在Contents目錄下創(chuàng)建一個(gè)MacOS目錄,把bin目錄下的二進(jìn)制文件都復(fù)制進(jìn)去:

Synergy.app

這個(gè)時(shí)候Synergy.app就可以運(yùn)行了,但還存在問題。Synergy.app會(huì)申請(qǐng)輔助功能權(quán)限,給它授權(quán)后,實(shí)際上只授權(quán)給了主程序synergy,synergyc和synergys運(yùn)行的時(shí)候仍然會(huì)提示沒有assistive devices權(quán)限。要將Synergy.app重新簽名一下:

cd bundle
macdeployqt Synergy.app -executable="Synergy.app/Contents/MacOS/synergyc" -executable="Synergy.app/Contents/MacOS/synergys"
codesign --sign - --force --deep Synergy.app

關(guān)于簽名覆蓋可以看這幾篇文章:

https://www.idczone.net/news/3888.html/
https://zhuanlan.zhihu.com/p/363120823


2.9 創(chuàng)建映像文件

將Synergy.app打包進(jìn)dmg映像文件中,用于發(fā)布。主要步驟就是通過系統(tǒng)自帶的磁盤工具創(chuàng)建一個(gè)空白映像文件,然后把Synerg.app拖進(jìn)去。如何創(chuàng)建美觀的dmg,可以看這篇文章:

https://blog.pangao.vip/Mac%E6%89%93%E5%8C%85dmg%E6%96%87%E4%BB%B6(%E6%9B%B4%E6%8D%A2%E8%83%8C%E6%99%AF%E5%9B%BE)/

Synergy的背景圖片在Synergy.app/Contents/Resources目錄下:

資源圖片

3. Windows平臺(tái)編譯Synergy

Windows平臺(tái)下的編譯過程在我之前的文章鼠標(biāo)共享神器Synergy的編譯打包教程里講過,這里再簡(jiǎn)單記錄一下。


3.1 編譯環(huán)境配置

配置步驟:

  1. 安裝git:Git for Windows

  2. 安裝Visual Studio 2019:Visual Studio Community 2019 with Updates

  3. 安裝Windows 10 SDK:Windows 10 SDK

  4. 安裝Bonjour SDK for Windows:Bonjour SDK for Windows v3.0

  5. 安裝Qt 5:Qt 5.14.2

  6. 安裝OpenSSL:OpenSSL

  7. 安裝CMake:CMake

  8. 安裝Wix toolchain(打包用到):The Wix toolchain


3.2 編譯Synergy

編譯命令:

cd synergy-core
mkdir build
cd build
call "D:\ProgramFiles\Develop\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" x64
cmake -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release ..
msbuild synergy-core.sln /p:Platform="x64" /p:Configuration=Release /m

前面幾條命令只要執(zhí)行一次,后面每次編譯執(zhí)行最后一條命令就行。編譯后會(huì)在synergy-core\build\bin\Release目錄下生成可執(zhí)行程序,執(zhí)行synergy.exe可以測(cè)試效果。


3.3 打包Synergy.msi

打包命令:

cd synergy-core\build\installer
msbuild /p:Configuration=Release

會(huì)在synergy-core\build\installer\bin\Release目錄下生成Synergy.msi安裝包,用于發(fā)布。


3.4 OpenSSL庫(kù)的問題

以前的本版在synergy-core/ext/openssl/windows/x64/bin/目錄下是有openssl庫(kù)文件的,現(xiàn)在整個(gè)openssl目錄都沒有了,打包的時(shí)候會(huì)提示找不到openssl.exe、libssl-1_1-x64.dll、libcrypto-1_1-x64.dll這幾個(gè)文件。需要從安裝OpenSSL-Win64安裝目錄拷過來,放到synergy-core/build/bin/Release/OpenSSL目錄下。?

還有個(gè)問題是,我安裝的OpenSSL是3.0.5版本,Synergy寫死了用1.1版本,要改一下synergy-core/dist/wix/Product.wxs文件,將其中的libssl-1_1-x64.dll和libcrypto-1_1-x64.dll改為libssl-3-x64.dll和libcrypto-3-x64.dll:

<?if $(var.Platform) = x64 ?>
 ? <File Source="$(var.OpenSSLBinPath)/libssl-3-x64.dll"/>
 ? <File Source="$(var.OpenSSLBinPath)/libcrypto-3-x64.dll"/>
<?else ?>
 ? <File Source="$(var.OpenSSLBinPath)/libssl-3.dll"/>
 ? <File Source="$(var.OpenSSLBinPath)/libcrypto-3.dll"/>
<?endif ?>

4. 去除激活驗(yàn)證

Synergy驗(yàn)證邏輯涉及下面這些類:

LicenseManager ? ? // 提供激活驗(yàn)證的入口
	--> AppConfig ? ? // 全局的配置參數(shù),其中包括一個(gè)SeriaKey和Edition
	--> SerialKey ? ? // 保存Key的字符串、版本、過期時(shí)間等信息
	--> SerialKeyType ? // Key的類型,有trial、subscription、maintenance
		--> SerialKeyEdition // Key的版本,比如unregistered、basic、lite、pro、ultimate
	--> SerialKeyParser ?// 解析plane serial中的版本、過期時(shí)間等信息

主要修改內(nèi)容:

  • 去除了LicenseManager中的所有驗(yàn)證邏輯和提示消息;

  • 將SerialKey的過期時(shí)間設(shè)置為3022年末;

  • 將SerialKeyType固定為maintenance;

  • 將SerialKeyEdition固定為ultimate。


5. 界面漢化

官方版本的國(guó)際化是殘缺版,很久沒有與界面改動(dòng)同步更新了。執(zhí)行下面的命令,更新國(guó)際化文件:

lupdate synergy-core/src/gui/gui.pro

會(huì)自動(dòng)抓取界面和代碼中要翻譯的文本,更新到synergy-core/src/gui/res/lang/目錄下的.ts系列文件中。我們漢化只需要修改其中的中文gui_zh-CN.ts文件。用Qt Linguist打開可以很直觀地編輯每個(gè)界面的翻譯文本:

Qt語(yǔ)言家


6. 自適應(yīng)高分屏放縮

使用Qt Creator的資源編輯器打開synergy-core/src/gui/res/Synergy.qrc,添加/qt/etc前綴,然后在其下添加qt.conf文件:

添加qt.conf

編輯qt.conf文件的內(nèi)容:

[Platforms]
WindowsArguments = dpiawareness=0


最終的運(yùn)行效果:

Synergy界面


加上改bug前前后后折騰了一周,大大小小的問題記得的都寫了,就寫到這里吧。

Synergy編譯、去激活、漢化:macOS+Windows保姆級(jí)教程的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
额尔古纳市| 巴里| 广安市| 建宁县| 漳平市| 彭泽县| 抚远县| 清徐县| 错那县| 玉山县| 凉城县| 福贡县| 兴安县| 萍乡市| 磴口县| 合肥市| 元氏县| 清远市| 任丘市| 来宾市| 东乌珠穆沁旗| 安徽省| 梧州市| 铜川市| 淮安市| 永善县| 庄河市| 宜兴市| 安宁市| 库伦旗| 沂南县| 马关县| 襄汾县| 安福县| 聊城市| 南川市| 天水市| 阿巴嘎旗| 临湘市| 彭州市| 定结县|