我打算開始一個新項目的工作。這是一款使用OpenGL的Windows,Linux和Mac OS X的3D遊戲,我將需要一個用於GUI,窗口和處理輸入的庫。我結束了3個選擇Qt,WxWidgets和GTK +。他們都在LGPL許可下。Qt或wxWidgets
1- LGPL是否允許使用這些庫來製作專有應用程序?
2-這3個應用程序中哪一個最適合我?
我打算開始一個新項目的工作。這是一款使用OpenGL的Windows,Linux和Mac OS X的3D遊戲,我將需要一個用於GUI,窗口和處理輸入的庫。我結束了3個選擇Qt,WxWidgets和GTK +。他們都在LGPL許可下。Qt或wxWidgets
1- LGPL是否允許使用這些庫來製作專有應用程序?
2-這3個應用程序中哪一個最適合我?
是的,只要你不靜態鏈接給他們(即:使用它們作爲DLL)。雖然wxWidgets可以讓你靜態鏈接而不會變成GPL。
以上都不是。如果你正在製作3D遊戲,那麼這些都不會滿足你的需求。 遊戲的GUI需求與典型桌面應用程序的GUI需求大不相同。在遊戲中,你希望你特定的GUI元素與特定的藝術方向保持一致,不符合桌面環境。另外,您可能希望GUI元素比這些工具包通常允許的更具表現力。
CEGUI存在這樣的理由。這是一款專爲滿足遊戲需求而設計的GUI系統。
另外,這些都不能提供遊戲通常想要處理它的方式。您通常希望遊戲的級別低於這些工具包提供的級別。這就是爲什麼像SDL和SFML這樣的項目存在的原因。
Unicode支持呢?我需要使用包括RTL(阿拉伯語和希伯來語)在內的不同語言提供遊戲。 –
@wbaccari:你必須繞過CEGUI的文本渲染例程。你需要使用Pango或ICU的佈局類或其他類來完成Unicode文本佈局。 Qt,GTK +和wxWidgets當然支持這些語言,但是他們對其他功能的支持卻缺乏適當的遊戲GUI。 –
如果可以,我甚至會建議製作自己的GUI系統。這是我所做的,並發現它非常有益。 – ssell
1 - 是的,前提是你的項目不需要庫本身
2的改變 - 我強烈 reccommend的Qt 新窗口的應用程序,如果不是有沒有其他原因優秀文檔(儘管還有很多其他的獲勝點,但它很快就會變得主觀)。 GTK和WxWidgets都會讓你浪費精力,思考你不應該考慮的事情。 Qt更容易a)自定義,並且b)當您不關心定製時忽略它。
雖然3D的東西,你可能要考慮全面的引擎,如,哦,Irrlicht的或OGRE3D或任何其他一些
雖然這個doc很棒,但QThread文檔很糟糕,這是錯誤的,錯誤的。從我的經驗來看,還有更多的情況是文件只是過時的(並且沒有任何新聞會改變它)。 – drahnr
WxWidgets使用LGPL,這意味着您可以在您的項目中動態鏈接到它,而無需強制您的項目成爲GPL或LGPL。
不過,我建議使用CEGUI,而不是你的建議的庫,任何遊戲或渲染應用
CEGUI使用MIT許可證比LGPL那麼嚴格,也允許你動態鏈接庫(首選)或者靜態地進行,無需強制您爲自己的項目獲得特定的許可證。
完全可擴展的和自適應這可能需要一段時間來設置CEGUI和它的依賴,並得到它運行與您的項目,但它仍然會從長遠來看,因爲它具有比大多數免費的用戶界面解決方案更多的功能。想象一下,如果你使用了一個UI庫,然後發現它沒有提供你需要的特定功能是多麼的惱人,而且幾乎不可能添加它 - 因爲CEGUI基於C++和XML,並且由於其設計,您可以隨時添加對CEGUI的特定調整。所以即使從長遠來看,你也很有可能不會受到限制。此外,它已經有很多功能 - 比同類庫更多。
嚴格的wxWidgets不是LGPL。這是LGPL +允許靜態鏈接 –
我投票結束這個問題作爲題外話,因爲[許可建議是關於堆棧溢出題外話。](http://stackoverflow.com/help/on-topic)您可能會能夠在[程序員堆棧交換中獲得幫助,但**在繼續之前仔細閱讀他們的常見問題解答**](http://meta.programmers.stackexchange.com/questions/7265/when-is-a-software-licensing-問題專題) – durron597