Mac版Redis Desktop Manager編譯

Redis Desktop Manager編譯

本文主要講述rdm在mac下的編譯過(guò)程。

?一、下載源碼

git clone --recursive https://github.com/uglide/RedisDesktopManager.git -b 0.9 rdm && cd ./rdm

這里直接按照官方的說(shuō)明下載源碼并切換到0.9分支。

二、安裝XCode

由于較低版本的XCode帶的編譯工具xcodebuild可能無(wú)法編譯rdm的依賴項(xiàng),因此建議升級(jí)XCode,本人編譯時(shí)使用的XCode為10.1。 XCode的版本也會(huì)被系統(tǒng)版本限制無(wú)法升級(jí),如遇到此情況建議先升級(jí)系統(tǒng)。本人編譯時(shí)將系統(tǒng)升級(jí)到macOS Mojave 10.14.2。

三、安裝Homebrew

由于編譯rdm需要用到其他工具或三方庫(kù),因此系統(tǒng)最好安裝有包管理器方便下載或更新其他軟件包。

?四、拷貝plist文件

cd ./src && cp ./resources/Info.plist.sample ./resources/Info.plist

五、安裝依賴軟件包

brew install openssl cmake

六、編譯依賴項(xiàng)

該依賴項(xiàng)即包含第三方的軟件包也包含源碼中的部分,在編譯rdm之前需要提前安裝或使用XCode的工具編譯,按照官方文檔只需執(zhí)行以下配置好的代碼即可:

./configure

七、編譯rdm

需要先安裝Qt5.9及Qt Creator,安裝完成后使用QtCreator打開(kāi)src下面的rdm.pro,直接編譯。

八、解決編譯問(wèn)題(重點(diǎn))

以上步驟完全基于官方文檔的說(shuō)明,但是很多人按照以上步驟仍然無(wú)法完成編譯工作,主要因?yàn)榫幾g過(guò)程中出現(xiàn)了較多官方文檔中為說(shuō)明的問(wèn)題,以下給出可能出現(xiàn)的問(wèn)題及解決辦法

1. xcodebuild 'quiet' 選項(xiàng)找不到

該問(wèn)題由于XCode版本較低導(dǎo)致,升級(jí)XCode即可。

2. breakpad.xib無(wú)法編譯

找到該文件并使用XCode打開(kāi),在XCode右側(cè)有個(gè)Build for選項(xiàng),選擇高版本的macOS。

3. 找不到string.h這個(gè)頭文件

遇到該問(wèn)題嘗試使用以下解決方式,任意一種可能都會(huì)解決該問(wèn)題。

* 安裝或重裝XCode command line

* 清空Qt Creator的構(gòu)建目錄,重新編譯

* 取消shadow build

4. 無(wú)法生成app boudle

該問(wèn)題不影響編譯,但會(huì)影響到打包,而且編譯出來(lái)的rdm實(shí)際上是debug版本。正常編譯一個(gè)應(yīng)用程序一般都會(huì)選擇release版本,因此當(dāng)用Qt Creator編譯rdm時(shí),用戶可能通過(guò)直接點(diǎn)擊左下角的按鈕來(lái)編譯release。然而實(shí)際上rdm.pro的配置還是debug版本,因此,此時(shí)用戶編譯出來(lái)的還是debug版本的rdm,該rdm沒(méi)有app boudle,只是生成了一個(gè)rdm的可執(zhí)行程序。為了解決該問(wèn)題并編譯真正release版本的rdm,需要手動(dòng)修改rdm.pro文件:

CONFIG -= debug

CONFIG += release

然而做了該改動(dòng)之后rdm會(huì)編譯報(bào)crashreporter相關(guān)的錯(cuò)誤, 個(gè)人認(rèn)為是rdm的release版本的配置出了問(wèn)題(官方挖的坑?畢竟官方提供的需要訂閱費(fèi))。對(duì)于該錯(cuò)誤可直接修改rdm.pro中mac相關(guān)的配置,找到并注釋掉以下代碼即可:

CRASHREPORTER_APP.files = $$DESTDIR/crashreporter

CRASHREPORTER_APP.path = Contents/MacOS

至此,rdm可以完成編譯運(yùn)行了。

九、編譯帶ssh功能的rdm

官方0.9.9版本的rdm不帶ssh功能,若需要使用ssh可手動(dòng)切換到0.9.8. 注意保持以上修改不變。

1. 安裝libssh2

brew install libssh2

2. 編譯問(wèn)題

2.1 無(wú)法找到-lssh2

libssh2默認(rèn)安裝路徑為/usr/local/lib,而對(duì)于有些系統(tǒng),該路徑不在系統(tǒng)庫(kù)文件的默認(rèn)搜索路徑中,為了找到該庫(kù)文件,可以修改系統(tǒng)配置文件來(lái)將其添加到默認(rèn)搜索路徑中,這里為了簡(jiǎn)單直接在rdm.pro中添加一下代碼:

LIBS += -L/usr/local/lib

2.2 編譯后界面黑屏

估計(jì)也是官方挖的坑,這里之所以黑屏是Qt Quick scenegraph backend的配置導(dǎo)致到,在0.9.9版本中統(tǒng)一使用了QSGRendererInterface::Software的方式渲染界面,然后在0.9.8版本卻改為了只在LINUX和WINDOWS上使用該方式,為了解決該問(wèn)題只需要找到源碼中Application::initQml函數(shù)并注釋掉相關(guān)的預(yù)處理命令:

#if defined(Q_OS_WIN) || defined(Q_OS_LINUX) // 注釋掉

QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software);

#endif // 注釋掉

至此帶ssh功能的0.9.8版本編譯完成,并可正常運(yùn)行。根據(jù)本人的運(yùn)行結(jié)果顯示windows和mac os的0.9.9版本的多語(yǔ)言切換都存在問(wèn)題,只能顯示英文,而0.9.8版本卻是正常的,因此建議使用0.9.8版本,而且還帶了ssh功能。

3. 其他問(wèn)題

由于0.9.8版本不是最新版,因此程序每次運(yùn)行都會(huì)彈出更新和QuickStart彈框,為了解決該問(wèn)題,直接找到對(duì)應(yīng)文件(app.qml中)注釋掉以下代碼:

Component.onCompleted: {

? ? if (connectionsManager.size() == 0)

? ? ? ? quickStartDialog.open()

}

十、參考文檔

RDM官方文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • “世界這么大,我想去看看”,這一封曾轟動(dòng)過(guò)網(wǎng)絡(luò)的辭職信,是2015年河南實(shí)驗(yàn)中學(xué)的顧少?gòu)?qiáng)老師告別了她生活了35...
    暗香疏影手筆閱讀 575評(píng)論 0 4
  • 十六歲生日那天,住在“神之圍樓”,掌管海棠花的女孩椿,化作一條紅色海豚,來(lái)到人間巡禮。也因此遇見(jiàn)了讓彼此一見(jiàn)鐘情的...
    月光映小禾閱讀 688評(píng)論 0 0
  • 老公,我真的很愛(ài)你,我相信你也很愛(ài)我,所以能不能多包容我媽媽一點(diǎn)了,有的事情她的做法你可能不贊同,但是你要相信她也...
    丹玲_2193閱讀 172評(píng)論 0 0
  • 1.今天晚上的晚餐好像是東南亞風(fēng)味的土豆咖喱飯,里面還有素羊肉,雖然有點(diǎn)辣,但是幾乎都被大家搶光;另外還配上猴頭菇...
    實(shí)無(wú)所得閱讀 264評(píng)論 0 0
  • 最初的記憶 我看見(jiàn)爺爺和奶奶坐在高臺(tái)上 爺爺頭發(fā)花白,臉龐泛著紅光,說(shuō)起話來(lái)中氣十足,一點(diǎn)兒都不像生病的樣子。 “...
    Rukiaaa閱讀 268評(píng)論 0 0

友情鏈接更多精彩內(nèi)容