對(duì)于一個(gè)新手而言,基本體會(huì)如下:
Qt Creator
Qt Creator優(yōu)勢(shì)
可以實(shí)現(xiàn)Ui和代碼無縫切換。(VS不行)
對(duì)于漢字的支持更好
提示功能做的更好。
比如:#include等,敲出#inc即有提示。
qmake非常好用
項(xiàng)目管理更方便,可以添加pri之類的來管理子模塊
Qt Creator劣勢(shì)(IDE本身巨大劣勢(shì))
debug困難
Qt+VS
Qt+VS優(yōu)勢(shì)
無敵的IDE加持,寫代碼和Debug很舒服
(這點(diǎn)是其他IDE無法創(chuàng)造的,既然用Qt就要用起來更方便,VS只會(huì)讓寫代碼更方便)
如果之前用VS寫代碼,將會(huì)無比舒適,快捷鍵通用。
Qt+VS劣勢(shì)
修改Ui文件之后,可能需要先對(duì)Ui文件進(jìn)行編譯。
提示功能不如Qt Creator那么全。
對(duì)漢字支持不太好,需要寫宏指令
qtcreator編譯的時(shí)候,感覺msvc比mingw快,不知道是不是這樣,
64位編譯應(yīng)該比32位快
Windows下的Qt編譯器 – MinGW和MSVC的區(qū)別
原文鏈接:Windows下的Qt編譯器 – MinGW和MSVC的區(qū)別 - 點(diǎn)擊領(lǐng)取
-
MSVC:
即Microsoft Visual C++ Compiler,即微軟自己的編譯器
我們下載Windows下的OpenCV時(shí),會(huì)帶兩個(gè)文件夾VC14,VC15(分別與Visual Studio的版本有對(duì)應(yīng)關(guān)系),這兩個(gè)文件夾下的庫可以直接運(yùn)行不需要編譯
將VS作為Qt的開發(fā)環(huán)境也是使用這個(gè)編譯器的緣故 -
MinGW:
我們都知道GNU在Linux下面鼎鼎大名的gcc/g++,MinGW則是指Minimalist GNU for Windows的縮寫
它是將GNU開發(fā)工具移植到Win32平臺(tái)下的產(chǎn)物,即一套Windows上的GNU工具集
用其開發(fā)的程序不需要額外的第三方DLL支持就可以在Windows下運(yùn)行,相對(duì)地,不使用動(dòng)態(tài)庫導(dǎo)致的就是編譯出來的程序大很多。也是可以設(shè)置使用靜態(tài)庫的
Qt 用 MSVC 和?MinGW?哪個(gè)編譯器編譯程序比較好?
請(qǐng)問在開發(fā) Qt 程序時(shí),MSVC 與 MinGW 兩種編譯器哪種更易于上手、出現(xiàn) bug 的概率低些呢?
我的建議是使用MSVC。
理由一:qtcreator的debuger有功能缺陷,經(jīng)常會(huì)出現(xiàn)變量無法查看的問題,棘手的bug還是需要在VS環(huán)境下進(jìn)行調(diào)試。很多人的開發(fā)模式就是qtcreator寫代碼,VS下面做調(diào)試。
理由二:MinGW無法直接生成PDB文件,這導(dǎo)致如果軟件閃退,無法利用生成的dump文件在windbg或VS下面定位到出錯(cuò)的代碼。(有各種奇技淫巧可以在windows下面對(duì)mingw版本進(jìn)行dump調(diào)試,但有這功夫直接安裝個(gè)VS 2017顯然更香)。
理由三:我的經(jīng)驗(yàn)告訴我,MinGW編譯出的軟件總會(huì)有奇怪的無法運(yùn)行現(xiàn)象。
實(shí)戰(zhàn)經(jīng)歷1:Scene3D在MinGW64位Release和MinGW32位Debug模式下運(yùn)行直接閃退,而64位Debug和32位Release卻正常運(yùn)行。
實(shí)戰(zhàn)經(jīng)歷2:動(dòng)態(tài)刪除繼承QuickItem的對(duì)象,有幾率導(dǎo)致非法內(nèi)存訪問,可以定位到問題在Qt源碼中Renderer中的一處。
類似以上例子的幺蛾子在我切換到MSVC之后不再出現(xiàn),我甚至懷疑QT的開發(fā)人員在windows下更傾向于MSVC進(jìn)行測(cè)試,導(dǎo)致我上報(bào)的MinGW中發(fā)現(xiàn)的bug都無法被他們重現(xiàn)并重視。
關(guān)于第三點(diǎn)再做補(bǔ)充,我認(rèn)為在任何平臺(tái)下,越貼近原生的東西總能得到更多的優(yōu)化,MinGW始終不是Windows親生的,bug比親生的VS多很正常。
對(duì)于另一個(gè)回答中提到的MSVC中rc文件編譯失敗重新編譯沒問題這種情況,根本不能稱之為編譯器bug,我更愿意把它稱之為玄學(xué)。
真正令人不安的是由于不同編譯器之間,或同個(gè)編譯器Release、Debug模式之間,指針初始化或指針回收處理的差異,以及官方的開發(fā)人員沒有進(jìn)行詳盡的測(cè)試,最終導(dǎo)致的野指針非法訪問問題。甚至官方example使用MinGW編譯都存在無法運(yùn)行的現(xiàn)象,讓我有理由相信官方團(tuán)隊(duì)對(duì)MinGW環(huán)境做的測(cè)試不夠詳盡。
關(guān)于QT、QT creator和編譯器,新手入門必知的一些知識(shí)關(guān)于QT、QT creator和編譯器,新手入門必知的一些知識(shí)_qt和qtcreator的區(qū)別_炫彩靈感的博客-CSDN博客
qt creator和qt的區(qū)別
qt creator和qt的區(qū)別_qq_25814297-npl的博客-CSDN博客文章來源:http://www.zghlxwxcb.cn/news/detail-714153.html
Qt編譯器MinGW和MSVC的區(qū)別
Qt編譯器MinGW和MSVC的區(qū)別_mingw和msvc區(qū)別_吻等離子的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-714153.html
到了這里,關(guān)于qt qtcreator qt+vs 編譯器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!