有同學問,公司在大量使用Qt作為基礎(chǔ)開發(fā)框架,公司也比較懵,使用Qt開發(fā)商業(yè)軟件,到底是否需要付費?
一句話: 當前Qt在PC/Mac/Linux桌面開發(fā),使用動態(tài)庫LGPL,不付費。 嵌入式linux,手機開發(fā),都要付費.
作為一個十幾年Qt使用經(jīng)驗的老c++程序員,今天就來回答這個問題。
Qt能獲得如此的成功,得益于LGPL協(xié)議,都知道GPL是非常嚴格,不能開發(fā)閉源商業(yè)軟件的。但LGPL允許你使用動態(tài)鏈接的方式開發(fā)閉源商業(yè)軟件。
所以Qt正是因為LGPL,獲得了巨大的成功。我們要定義軟件基礎(chǔ)框架的成功,需要從幾個緯度,1 開發(fā)者人數(shù),社群, 2 軟件代碼的質(zhì)量,穩(wěn)定性。 3 成功的商業(yè)軟件的案例。
從這幾個緯度,Qt無疑是非常成功的,目前擁有百萬級的開發(fā)者, 經(jīng)過不斷的迭代,軟件質(zhì)量穩(wěn)定性都非常優(yōu)秀,重量級的行業(yè)基礎(chǔ)軟件,比如Maya, SubstancePainter, 視頻剪輯軟件達芬奇等,
都基于Qt開發(fā),這些生產(chǎn)力基礎(chǔ)軟件,終端用戶都是千萬級的,所以從些個角度,Qt的穩(wěn)定性也經(jīng)過了大量的終端用戶的測試,驗證。
從Nokia時代的Meego,QML,Qt的理念,09年的時候,都非常先進,尤其是QML。但被Nokia放棄,也成為了那個時代程序員對Qt的心理陰影。
個人認為Qt作為行業(yè)基礎(chǔ)軟件,應該像Linux一樣,被我們國家,當作重要的國家戰(zhàn)略來發(fā)展,Qt在俄羅斯,德國,等國家,都是大力使用的。
后來Qt被DIGIA收購,經(jīng)過十年的發(fā)展,不但沒有衰落,而且一通商業(yè)操作,越來越成功。
筆者查了下,截止2020年底,Qt公司是DIGIA旗下獨立的子公司,而且是赫爾辛基上市公司。
名字叫QTCOM.HE 2019 年收入5800萬歐元。 市值是12億歐元。
最近幾年,Qt公司一頓操作,靠賣付費license,活得還不錯,公司員工數(shù)是340人。
但這一頓操作,各種協(xié)議的升級,搞得暈頭轉(zhuǎn)向。GPL GPLv2 GPLv3 LGPL2.1 LGPL3 commercial license.
昨天晚上研究到很晚,搞清楚了他們的這些操作。


你公司用Qt開發(fā)閉源商業(yè)桌面軟件,在windows/mac/linux上,可以使用動態(tài)庫鏈接方式,遵循LGPL協(xié)議,是不用付費的,也不用開源你的代碼。
只需在你的商業(yè)軟件的about什么小角落,說明你使用了Qt,遵循LGPLV3協(xié)議即可.你公司就可以開發(fā)閉源的商業(yè)軟件。
那商業(yè)付費什么意思呢? 就是指的你使用靜態(tài)庫鏈接的方式,是要付費的。
首先,嵌入式linux開發(fā),如果你自己手動編譯Qt 動態(tài)庫,鏈接動態(tài)庫。并說明你遵循LGPL, 也是可以開發(fā)閉源商業(yè)軟件的。
移動端,iOS/Android開發(fā)。雖然iOS/Android。目前都支持動態(tài)鏈接方式。 但很明顯,Qt公司就是想讓你付費。
最明顯的就是iOS的庫,Qt公司只提供了靜態(tài)鏈接方式。如果你要開發(fā)iOS,你得自己去編譯動態(tài)鏈接庫,Qt公司也沒告訴你如何編譯動態(tài)庫.
付費價格是 一年3950刀,三年8400刀。

如果你用Qt LGPL的方式,采用了靜態(tài)庫鏈接的方式,開發(fā)了iOS android應用。是不是就不允許,或者等著被抓呢? 肯定不是的。
Qt公司每天有很多非常重要的事情要去做。而且他們也不可能有能力掃描整個AppStore GooglePlay看誰在違規(guī)使用他們的Qt。
你只要不成天跑到各種論壇,社區(qū)去舉報自己說自己使用了LGPL并使用了static lib。 就沒人管你。
最搞笑的事情是: 你跑到開源社區(qū)去問Qt官方,為啥不直接提供iOS/Android LGPL協(xié)議的動態(tài)庫? 他們表示,永遠不會回答你。
你去問蘋果,AppStore接受LGPLV3的軟件嗎? 蘋果也不知道。
Qt公司,就是想辦法讓你付費。蘋果他們不管你這些,你自己的事。
作為一個公司,團隊,你一直使用Qt開發(fā)軟件,如果你自己都沒賺錢,怎么能給Qt公司付費呢?
所以建議是,你先自己用吧,等你賺錢了,再買三年5萬塊左右的商業(yè)版。
如果你拿Qt開發(fā)的商業(yè)軟件,一年賺幾百萬,幾千萬,尤其是使用了手機,嵌入式版的Qt,還是建議使用付費版,
三年五萬塊人民幣左右,支持下Qt,開源軟件的發(fā)展,有你的支持,會變得更好,自己公司也用得安心。
如果公司是Maya, Adobe,達芬奇這種體量,那直接來深度合作定制開發(fā)了。
Qt 的特點:
優(yōu)勢 :
Qt5 深度結(jié)合OpenGL/ES ,非常適合做數(shù)字圖像處理,生產(chǎn)力軟件,設計軟件,工具軟件??缙脚_圖像處理能力非常強悍。
Qt6 提供跨平臺的(Metal/Vulkan/D3D11)抽象層 QRhi, 對下一個10年從事音視頻,數(shù)字圖像處理的軟件,非常大的利好。
QML提供更簡單的基于3D渲染引擎高效的寫跨平臺GUI的方式。但使用QML,不建議使用JS。
(對于從事音視頻,數(shù)字圖像處理開發(fā)的程序員歡迎關(guān)注,后面我們會花大量的時間來深度研究QRhi的實現(xiàn), 寫一個專欄。Qt的核心渲染層QRhi是他們從頭寫的,不是基于MoltenVK).
劣勢:
跨平臺不是特別完善,有時候還需要結(jié)合native開發(fā),比如手機端。
補充,我們這一代程序員,對GPL/LGPL理解過太歷史,簡單粗暴理解為動態(tài)庫可以商用,靜態(tài)庫不允許。但最新的LGPLV3, 意思是嵌入式設備,包括手機開發(fā),使用LGPLV3 Qt5.4以后的版本,
無論動態(tài)庫,靜態(tài)庫都是不允許的。如何允許你使用呢? 掏錢。Qt最新整了個中小企業(yè)計劃,一年499刀左右。