隨著國(guó)產(chǎn)化的興起,各種國(guó)產(chǎn)系統(tǒng)和國(guó)產(chǎn)數(shù)據(jù)庫(kù)等逐漸進(jìn)入開發(fā)者的世界。國(guó)產(chǎn)化的強(qiáng)勢(shì)推進(jìn),大大刺激了Qt開發(fā)市場(chǎng)的需求,也主要得益于強(qiáng)推國(guó)產(chǎn)化,使得小眾的Qt開發(fā)世界逐漸走入大眾視野,各位Qt程序員才能繼續(xù)保證飯碗,甚至發(fā)揚(yáng)光大走上財(cái)富自由之路。個(gè)人在開發(fā)過(guò)程中,總結(jié)了一些要點(diǎn)。 中標(biāo)麒麟neokylin基于fedora。 銀河麒麟kylin早期版本比如V2基于freebsd,新版本V4、V10基于ubuntu。 優(yōu)麒麟ubuntukylin就是ubuntu的漢化版本。 deepin基于debian。 uos基于deepin或者說(shuō)是deepin的商業(yè)分支。 ubuntu基于debian。 linux界主要分兩種內(nèi)核系統(tǒng),debian(ubuntu、deepin、uos、銀河麒麟kylin等)和redhat(fedora、centos、中標(biāo)麒麟neokylin、中興新支點(diǎn)newstart等),分別對(duì)應(yīng)apt-get和yum安裝命令。絕大部分的linux系統(tǒng)都基于或者衍生自這兩種系統(tǒng)。 理論上基于同一種系統(tǒng)內(nèi)核的,在其上編譯的程序可以換到另外的系統(tǒng)運(yùn)行,前提是編譯器版本一致,比如都是gcc4.9,在ubuntu14.04 64位用gcc4.9編譯的Qt程序,是能夠在uos 64位上運(yùn)行的。 高版本編譯器的系統(tǒng)一般能夠兼容低版本的,比如你用gcc4.9編譯的程序是能夠在gcc7.0上運(yùn)行,反過(guò)來(lái)不行。 意味著如果你想盡可能兼容更多的系統(tǒng),盡量用低版本的編譯器編譯你的程序,當(dāng)然要你的程序代碼語(yǔ)法支持,比如c++11就要從gcc4.7開始才支持,如果你的代碼用了c++11則必須至少選擇gcc4.7版本及以上。 用Qt編寫linux程序?yàn)榱税l(fā)布后的可執(zhí)行文件可以兼容各種linux系統(tǒng),只要在這兩種內(nèi)核(debian、redhat)的系統(tǒng)上用低版本的編譯器比如gcc4.7編譯qt程序發(fā)布即可。 2022-1-27補(bǔ)充:根據(jù)Qt官方安裝包,發(fā)現(xiàn)基于redhat的gcc4.9編譯器發(fā)布的,通用各種linux系統(tǒng)(親測(cè)ubuntu各個(gè)版本、fedora、centos、deepin、uos、銀河麒麟kylin、中標(biāo)麒麟neokylin、中興新支點(diǎn)newstart等),自己按照這個(gè)版本也親測(cè)打包發(fā)布了親測(cè)可用,我擦,redhat系統(tǒng)的也可以在debian系統(tǒng)跑。 2022-2-10補(bǔ)充:debian上靜態(tài)編譯的程序也可以在redhat系統(tǒng)跑,可能靜態(tài)編譯去掉了很多依賴吧。 國(guó)產(chǎn)人大金倉(cāng)數(shù)據(jù)庫(kù)用的是postgresql數(shù)據(jù)庫(kù)改的,意味著你在Qt中用postgresql數(shù)據(jù)庫(kù)插件也是能夠連接到人大金倉(cāng)數(shù)據(jù)庫(kù)的。 后面發(fā)現(xiàn)無(wú)所謂動(dòng)態(tài)靜態(tài),只需要遵循選一個(gè)低版本的linux系統(tǒng),位數(shù)一致,編譯打包發(fā)布的Qt程序,就可以在其他linux系統(tǒng)運(yùn)行,親測(cè)十幾種linux系統(tǒng)。 以上未必完全正確,歡迎各位留言指正,謝謝。
下面貼圖的項(xiàng)目都可以在linux上運(yùn)行。 體驗(yàn)地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 文件名:bin_linux
|