AM企業即時通對國產平臺(UOS ARM架構)的適配總結
?
MBC是一款整合企業即時通訊AM、企業云盤Mobox、以及WEBAPP應用的3合一軟件。它要求軟件能夠跨平臺,因此使用了QT技術進行開發。QT對開發者很友好,在x86架構下,提供了編譯好的sdk,直接安裝便可,簡單省事。隨著國產操作系統的發展,有了更多國產操作系統支持x86,arm,loongarch,mpis等架構,同時客戶對公司也提出要支持相應架構的操作系統。但是QT的官網現在還沒有除x86架構之外的sdk。因此開發者面臨了一個緊要問題,就是如何在非x86架構下,編譯QT的問題。
我們的客戶使用的是UOS操作系統(基于arm架構),它是近年才在市場上出現的,資料很少,關于QT的適配資料也很少。因此面臨的困難可想而知。
剛接觸時,在客戶群,華為工程師,提出可以在x86架構上使用qemu虛擬機上,虛擬arm環境進而安裝UOS操作系統。我查找了資料進行了嘗試,在安裝UOS時,非常緩慢,放那里黑屏,大概40多分鐘才出現安裝界面,選擇安裝選項,又過了2個多小時,才安裝完全。我以為安裝好了,就可以正常使用了,沒想到點一下電腦桌面,10分鐘才有響應。這種情況下,更別提要在這個基礎上編譯QT了,這個方法基本放棄了。
我們之前做過一段時間的嵌入式開發,開發板是arm架構的情況下,我們使用的方式就是交叉編譯。在網上查找資料,發現華為的openeuler就是使用交叉編譯的方式開發應用程序,理論上來講,這種方式UOS也是適用的。我在網上找到了linaro公司交叉編譯工具。這家公司跟華為長期合作,使用的人也比較多,資料也非常多,相比較而言可靠性還是有的。因此我利用了這款工具進行艱難的嘗試,MBC需要webengine模塊和x11模塊,因此依賴性比較復雜,依賴庫也比較多,需要按照順序一個一個的編譯,費了九牛二虎之力,終于編譯完成了。在x86環境下無法測試,因此找了一臺云計算機在上面測試,發現glibc版本不匹配,運行不了,太心酸了。
之后獲知UOS官網提供了一個云端的平臺,可以直接在上面編譯并且還可以在上面運行,事情就變得簡單了。首先安裝QT開發依賴庫,編譯QT源碼。其種編譯QT源碼也遇到了問題,由于官網的計算機性能差,編譯webengine時,老是電腦死機,后來修改了ninja源碼,限制了線程數,就順利的編譯出來了。其次編譯MBC,沒有遇到問題。然后編譯打包工具,也很順利。基本上沒有再遇到問題。
這就是UOS適配的歷程,其中走了很多彎路,好在最終把問題解決了。
?
?
?