qt跨平台編譯
❶ qt 跨平台 選哪個編譯器
Qt 跨平台可以選 MSVC 和 MinGW 兩個編譯器。
MinGW 比較方便,配置易上手,但是 WebEngine 是沒有的。 MSVC 也不錯,功能強大,包括了WebEngine 模塊。 如果項目使用到的一些第三方的 lib,或者 dll,使用 MSVC 編譯出來的,那麼推薦用 MSVC(應該是必須,不同的編譯器生產出的庫一般是不兼容的或者兼容效果差)。
❷ VS 2015 的跨平台特性對 Qt 會帶來多大的沖擊
「相對客觀」的說:
1)Qt 在iOS和Android的UI支持上只能算是一般,和原生UI相差甚遠,對平台新版本的新特性支持薄弱。VS對這方面的支持,基於喬布斯的評語「微軟太缺乏審美能力」,我也表示完全不看好。
2)業務層用Qt的庫相比個家公司自己用原生的C艹庫差別還有的。除非是哪家公司用Qt做了基礎庫,這是例外。基於VS的iOS、Android支持的編譯器是gcc和clang,WinRT是MSVC,這部分和Qt都是一致的。
3)Qt的反射封裝或者是Meta系統封裝很重,至少要超過了c艹標準的rtti。雖然這套系統適合用來開發UI,但是作為業務層,如此重的外殼,用Qt就失去了一部分用java、objective c 遷移到C艹的性能優勢。VS裡面由於編譯鏈的限制,而且基於llvm的coreclr支持還是幼兒期,幾乎不用考慮c#的可能性。
4)最近幾個月都在觀察QtBug 列表,上面用戶Qt對iOS、Android吐槽不斷,小Bug層出不窮,甚至有的會影響正常啟動。對WinRT的支持更不給力。VS對WinRT支持肯定會是Native的,至於其他兩個平台,得靠自己維護了。
5)Retina支持。除了Mac平台支持穩定,其他平台只是承諾要增加支持。那個Improve Retina 支持的帖子是去年發的,今年年初發布的Qt5.4也只是完善了Mac部分和加入實驗性質的Windows、linux支持。等到完美加入這部分支持,又是何年何月?
6)Qt對移動端的投入究竟能有幾斤幾兩?首先說一個不相乾的話題是,Qt對桌面跨平台的支持可謂是筋疲力竭:對Windows 8/8.1的2xDPI顯示支持(HIDPI),還需要手動設置環境變數外加程序內啟動選項選項才能開啟,不然用Qt原始方式實現的界面都是變形扭曲的;Mac的StatusBar 中用設置了template的NSImage 何年才能有;Linux在從Qt5.1就regression消失的TrayIcon也是時隔三個大版本到即將發布的Qt 5.4.2才有修復。其6個月的漫長的開發周期,龐大而臃腫的庫,面對對更新迭代更瘋狂的移動端,Qt的表現是Qt缺乏有對iOS、Android的相關支持,運行時家常便飯的各色crash,對WinRT的支持我認為這更像是一個hacker的項目。VS只有等VS2015才能評論。
7)我認為跨平台的C艹支持最顯著的收益,是UI層封裝一次跨平台的組件還是業務層的代碼復用和性能優化?同1)3)6)中討論,我個人認為Qt UI層的剝離平台相關的開發純屬扯淡,跨平台對C艹開放最大的收益還是復用高質量的基礎庫和核心業務代碼帶來的性能優勢和項目維護優勢。
8)Qt的Mobile開發支持,本身的開發工具是平台相關的,就是說Qt不能在Windows下開發iOS和Android,Qt也不能在Linux下開發iOS。相比Windows下VS2015 帶來CrossMobilePlatform支持,開發機器只要是Windows就可以。這點上Qt編譯鏈技術完敗。
❸ QT是什麼原理如何實現跨平台
和java一樣,針對每一種OS平台,QT都有一套對應的底層類庫,而介面是完全一致的。
因此只要是在QT庫上開發的程序,放在任何一種平台下都可以編譯運行(前提條件是:程序中沒有使用某OS特有的機能)。
也就是說在OS和應用層之間,增加了一個平台層來保證可移植性。
❹ qt具有一次編譯後可跨平台運行的特性嗎
是不具有跨平台特性的,一次寫代碼多個平台編譯。
❺ 標題Qt是否為跨平台SDK Qt支持哪些平台下的開發
是。
Qt支持下列操作系統:MicrosoftWindows95/98,MicrosoftWindowsNT,Linux,Solaris,SunOS,HP-UX,DigitalUNIX(OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX等等。
Qt是一個1991年由QtCompany開發的跨平台C++圖形用戶界面應用程序開發框架。它既可以開發GUI程序,也可用於開發非GUI程序,比如控制台工具和伺服器。Qt是面向對象的框架,使用特殊的代碼生成擴展(稱為元對象編譯器(MetaObjectCompiler,moc))以及一些宏,Qt很容易擴展,並且允許真正地組件編程。
❻ qt如何跨平台編譯
你可是試試將圖片、視頻等資源放在qrc資源文件中,使用資源路徑進行調用,這樣生成的可執行文件就不需要依賴外部文件系統資源了。
❼ LINUX下的QT程序怎麼移植到windows下
重新編譯即可,Qt的跨平台性是一次編寫,到處編譯,與JAVA的一次編譯,到處執行不同
你可以使用Qt Creator,我沒有用過,就不做介紹了
我一般使用 「qt-vs-addin」在visual studio 2005下面編譯,可能會被某些大蝦所不屑,呵呵
怎麼又是你?
❽ 哪位高手告訴我qt+ace 開發跨平台程序,windows 與linux下需要安裝些哪些東東能否介紹下相關的一些經驗
ACE全稱adaptive communication enviroment,是一套C++的通信庫。它提供了socket/threading/memory management等多種系統調用的面對對象的wrapper,使C++通信軟體開發更加簡單。
ACE最帥的特點:跨平台!!!!!!ACE屏蔽了底層平台特定的語義,使用ACE編寫的C++程序,可以在linux/windows/HP-Unix下編譯執行,而且效率很高。曾經做過的一個VOIP項目就是用ACE寫的,那個項目的技術相當復雜,需要用到socket/multi-threading等很多與操作系統聯系緊密的技術,但用了ACE(界面用Qt)後,那個項目源碼可以直接在linux和windows下編譯運行,呵呵,還是相當成功的。項目進行中感到ACE相當成熟,舉一個朋友說Siemens的某些大型工程也是用的ACE。而且,ACE是免費開源的軟體包--不用白不用。
C++ Network Programming就是ACE項目的負責人Schmidt寫的,這位老哥以前是華盛頓大學的副教授,主要研究領域是軟體工程(他寫了不少關於pattern的文章和書),現在貓到UC Irvine去了,好象還是副教授(要這哥們在中國,早應該成教授了吧)。這兩本書主要介紹了ACE的使用,也涉及了部份設計方面的內容。第一卷主要介紹ACE的基本功能和使用,第二卷則偏重通訊軟體中的design pattern。搞通信軟體開發的兄弟們絕對應該看看此書。
另外也有人推薦把ACE作為學習C++的範例來學習,呵呵,這就是個人喜好的問題了...總的來說ACE的代碼風格還是很不錯的--比STL那些天書好看些,呵呵。
Q: 什麼是ACE或者ACE2插件?
A: 如果把普通的插件比作一棵棵互不關聯的小樹, 那麼ACE庫或者ACE2庫就是一棵大樹干,所有基於ACE的插件就是長在上面的樹枝. 共有的部分都被集成到一起,因此代碼非常短小和快速,而且穩定.ACE2是用來取代ACE的版本,雖然有一些插件還未能從ACE轉換到ACE2,但是ACE2系的插件現在可說代表了wow插件的最高水平.
ACE2是為其他倚賴ACE2才能運行的插件提供庫支持的一個庫文件,本身不具備任何功能。
如BigWigs[ACE2]就說明BigWigs這個插件需要ACE2的支持。
使用方法:解壓縮以後無論是ACE2還是!LIB都直接放入Interface\Addons裡面就可以了。
ACE 類插件因為短小精悍 面向對象 有越來越多的插件開始以其作為編寫庫
目前已經發展到 ACE2
ACE2運行庫開發組都是提倡直接內嵌的,完全沒有必要單獨提出來!沒錯如果你有10個內嵌了ACE2的插件,開始載入的時候確實會載入10個副本的ACE2導致Warmup顯示內存佔用偏大,但是在下次的碎片回收中,多餘的ACE2副本都會被清除,只留下一個駐留內存。如果有新舊多個版本,則會自動選擇最新的版本駐留。所以說,Warmup的數據,不能正確的反映出ACE2插件的實際內存使用。Warmup的作者本身也是ACE開發團隊的成員,現在由於Warmup導致的一些對ACE2的誤解,這傢伙想必也是哭笑不得了,呵。
作為ACE2插件的使用者,完全沒有需要去考慮運行庫的版本更新等等問題,這是ACE2標準的一個重要精神,是ACE2開發初始就持有的初衷!所有的ACE2運行庫,都是可直接內嵌、自動管理版本,不需要使用者進行任何管理干預的!
ACE2作為wow插件界的技術先鋒,為插件作者提供了一個良好的開發平台,也切實地為玩家帶來了易用、強大而低資源佔用的優秀插件。希望大家不要為過往的成見和一些人的誤導而錯失了如此優秀的插件!
談運行庫而色變,完全是沒有必要的。ACE2的優秀運行庫(包括ACE2和基於ACE2標準的CandyBar, Dewdrop, Metrognome, Compost, ParserLib等等)不但是簡化了插件的開發,優化了代碼,也對降低插件資源佔用作用。再加上ACE開發社區作者們強烈的優化意識,可以負責的說,ACE2的插件比其他插件絕對更省資源!
本質上來說, Qt是一個跨平台的C++應用程序開發框架,有時又被稱為C++部件工具箱。Qt被用在KDE桌面環境、Opera、GoogleEarth、Skype、Adobe Photoshop Album和VirtualBox的開發中。它是諾基亞(Nokia)的QtDevelopment Frameworks 部門的產品。使用 Qt,只需一次性開發應用程序和用戶界面,無須重新編寫源代碼,便可跨不同桌面和嵌入式操作系統部署這些應用程序。
基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫和 Windows 平台上的 MFC,OWL,VCL,ATL 是同類型的東西,但是 Qt 具有下列優點:
a) 優良的跨平台特性:
Qt支持下列操作系統: Microsoft Windows 95/98, Microsoft Windows NT, Linux,Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD,BSD/OS, SCO, AIX, OS390,QNX 等等。
b) 面向對象
Qt 的良好封裝機制使得 Qt 的模塊化程度非常高,可重用性較好,對於用戶開發來說是非常 方便的。 Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件 之間的協同工作變得十分簡單。
c) 豐富的 API
Qt包括多達 250 個以上的 C++ 類,還替供基於模板的 collections, serialization, file, I/Odevice, directory management, date/time 類。甚至還包括正則表達式的處理 功能。
d) 支持 2D/3D 圖形渲染,支持 OpenGL
e) 大量的開發文檔
f) XML 支持
最近諾基亞發布了Qt 4.6——最新版的跨平台應用程序和用戶界面框架。Qt 4.6 對全新平台提供支持,具有強大的全新圖形處理能力並支持多點觸摸和手勢輸入,讓高級應用程序和設備的開發過程變得更加輕松和快樂。
諾基亞應用服務和框架副總裁Sebastian Nystrom說:「不論是什麼樣產品設計或開發平台,Qt 4.6的發布對開發人員來說都是一件令人興奮的事。」
「開發人員可以輕而易舉地為桌面平台或設備(包括數億部基於Symbian 和 Maemo系統的設備)開發出具有視覺美感和網路連接功能的應用程序。」
Nystr?m補充說:「開發人員將非常喜歡使用Qt直觀的編程界面,快速開發出功能強大、外表美觀的應用程序。」
更多平台
Qt4.6 首次包含了對Symbian 平台的支持,並在其所支持的平台中新增了 Windows 7、Apple Mac OS 10.6 (雪豹)和即將上市的Maemo 6。此外還為實時操作系統QNX 和 VxWorks提供了網路社區支持。對Maemo 5的支持目前也已進入研發階段,其技術預覽版第二版已於今日發布。
Qt 對 Symbian 和 Maemo 的支持首次為開發人員創造了使用同一代碼庫同時針對這兩個平台進行開發的機會。能夠跨平台分享代碼就意味著開發人員所開發的應用程序上市的速度將更快,影響的設備用戶群將更廣。
Qt Mobility項目下的全新Qt API技術預覽版也於今日同時發布。這些跨平台的API為開發人員提供了多種功能,如導航類設備的定位功能,以及信息發送和接收、聯系人和網路連接管理等。
外觀更炫
Qt 4.6是在4.5圖形增強功能的基礎上創建的,進一步強化了這些圖形功能,添加了全新的動畫框架(Animation Framework)——包括直觀的狀態機功能——以及全新的高級圖形功能,如不透明、陰影、閃光和濾鏡等。
使用手指
Qt4.6最令人興奮的新功能之一就是可以創建多點觸摸應用程序。這種全新的基於多觸點和手勢的輸入法(如輕觸和動力滾動)使Qt4.6框架的功能更為強大,用戶可以通過觸覺以動態的方式與應用程序和設備進行互動。
性能更強
傳統軟體開發觀點認為高級用戶界面功能的獲得通常是以性能嚴重受損作為代價的。Qt 4.6 對此觀點提出了挑戰,為此投入大量工作,既要獲得最佳性能,又要能讓開發人員所開發的產品達到用戶所要求的「令人驚嘆」的效果。
性能提升主要包括:一個經過高度優化、重新編寫的 Qt GraphicsView 渲染演算法、一個全新的 OpenGL 繪圖引擎、WebKit、使用 OpenVG 對 2D 矢量圖形的支持,以及對全新 DirectFB 的支持。
最新工具
在發布 Qt 4.6 的同時,作為 Qt 開發跨平台 IDE 的 Qt Creator 也發布了更新版本。Qt Creator 1.3 和 Qt 4.6共同構成的 Qt SDK,包含了開發跨平台應用程序所需的全部功能。(來自programbbs)
3、用QT能做什麼?
在QT的官方網站談到了15年來取得了的成就,它幫助世界各地和各個行業組織開發出先進的高度創新的應用和設備。
使用Qt,眾多的開發商和公司已經能夠:
● 減少了近50%的開發時間。
● 加速了50%的開發速度由於代碼可維護
● 減少了50%的代碼量
Qt的用戶怎麼說?
● 94%報告說,Qt的滿足或超過其發展的期望
● 92%會向他人推薦使用Qt
● 76%報告因為使用Qt,生產率提高
Qt的應用領域:
有很多出名的例子是都是使用Qt開發的。例如: Arora(一款跨平台的開源網頁瀏覽器)、eva(Linux版QQ聊天軟體)、FreeMat(一個自由開源的數值計算環境和編程語言 )、Ga-Ga(即時通信軟體)、Google地球(Google Earth)(三維虛擬地圖軟體)、ImageVis3D、KDE(著名的桌面環境)、Elibs(一個許多KDE程序都使用的共享庫,如Amarok、K3b、KDevelop、KOffice等)、Last.fm播放器(著名的互聯網音樂社區網站的桌面客戶端)、Motorola A760(UI 以 Qt/Embedded 建構)、MythTV9(開源的數字視頻錄制軟體)、Opera(著名的網頁瀏覽器)、Qterm(跨平台的BBS軟體)、QtExtended、Quantum GIS、Skype(一個使用人數眾多的基於P2P的VOIP聊天軟體)、SMPlayer(跨平台多媒體播放器)、TeamSpeak(跨平台的音效通信軟體) 、Tlen.pl:波蘭人發明的 instant messaging client TOra、VirtualBox(虛擬機軟體)、Xconfig(Linux的Kernel配置工具) 、chmcreator(開源的chm開發工具)……
❾ qtuseopengl好處
好處是容易擴展。
Qt是一個跨平台的C++應用程序開發框架。廣泛用於開發GUI程序。
Qt使用標準的C++和特殊的代碼生成擴展(稱為元對象編譯器(MetaObjectCompiler,moc))以及一些宏。通過語言綁定,其他的編程語言也可以使用Qt。
❿ qt指的是什麼呢
Qt是一個1991年由Qt Company開發的跨平台C++圖形用戶界面應用程序開發框架。
它既可以開發GUI程序,也可用於開發非GUI程序,比如控制台工具和伺服器。Qt是面向對象的框架,使用特殊的代碼生成擴展(稱為元對象編譯器(Meta Object Compiler, moc))以及一些宏,Qt很容易擴展,並且允許真正地組件編程。
2014年4月,跨平台集成開發環境Qt Creator3.1.0正式發布,實現了對於iOS的完全支持,新增WinRT、Beautifier等插件,廢棄了無Python介面的GDB調試支持,集成了基於Clang的C/C++代碼模塊,並對Android支持做出了調整。
至此實現了全面支持iOS、Android、WP,它提供給應用程序開發者建立藝術級的圖形用戶界面所需的所有功能。基本上,Qt 同X Window上的Motif,Openwin,GTK等圖形界面庫和 Windows 平台上的 MFC,OWL,VCL,ATL 是同類型的東西。
Qt優勢:
1、優良的跨平台特性:
Qt支持下列操作系統: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。
2、面向對象:
Qt 的良好封裝機制使得 Qt 的模塊化程度非常高,可重用性較好,對於用戶開發來說是非常方便的。 Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件之間的協同工作變得十分簡單。