科研需要咧欣,想?yún)⒖紟熜种皩懙拇a,可是他是用VS2010+Qt4.8.2編寫的枉疼,我是用VS2013+Qt5.4.0皮假,VS2013不支持Qt4鞋拟,所以我只好自己重新編譯,有坑惹资,浪費(fèi)不少時(shí)間贺纲,但最后還是成功了!
qmake用戶手冊
移植過程
- 在下載下來的文件夾中刪除了原來的解決方案相關(guān)文件褪测,保留.pro
-
Transition_from_Qt_4.x_to_Qt5
參照鏈接我主要在原來的.pro文件中添加了三項(xiàng)
QT += widgets
QT += webkitwidgets
QT += printsupport
由于Qt5將大部分桌面部件移到了Qt Widgets模塊中;
如果使用到打印相關(guān)的類猴誊,Qt5單獨(dú)放到了QtPrintSupport模塊中,所以得加頭文件#include <QtPrintSupport>侮措,在.pro中要加QT += printsupport;
如果使用到QWebPage等webkit相關(guān)可視部件的稠肘,Qt5單獨(dú)放到了QtWebKitWidgets模塊中,所以得加頭文件#include <QtWebKitWidgets>萝毛,在.pro中要加QT += webkitwidgets项阴; - 如果要使用C++11特性,在.pro中加下面一行
CONFIG += c++11 (CONFIG等關(guān)鍵字在上面的qmake用戶手冊中都有講解) - 打開編輯器工具欄的
QT5
選項(xiàng)笆包,選擇Open Qt Project file(.pro)
即可生成解決方案 - 接下來就是自己配置各種東西环揽,主要包括附加包含目錄、附加庫目錄庵佣、附加依賴項(xiàng)
附加包含目錄中是需要連接的各種文件的頭文件(.h)一般是包含到include文件夾
附加庫目錄是靜態(tài)庫所在的文件夾歉胶,里面是一堆.lib文件,一般包含到lib文件夾
附加依賴項(xiàng)是自己手動輸入的用到的.lib具體文件
配置好后就開始編譯巴粪,如果發(fā)現(xiàn)有一些Qt4中已經(jīng)被棄用的函數(shù)通今,只要找到Qt5中相應(yīng)的替換函數(shù)即可。
解決QPixmap: Must construct a QGuiApplication before a QPixmape錯誤
類似的錯誤還有QWidget: Must construct a QApplication before a QPaintDevice肛根。
像這種錯誤主要因?yàn)槲覀儼袲ebug/Release的Dll混到一起了辫塌,因?yàn)镈ebug和Release模式下鏈接的動態(tài)庫是不同的,Debug的動態(tài)庫比Release多了個(gè)
d
派哲,也就是在上面的附加依賴項(xiàng)中的配置臼氨。解決找不到動態(tài)庫.DLL
類似這種問題的解決方法:在本地查找看有木有相應(yīng)的dll文件,如果沒有就去網(wǎng)上自己下載相應(yīng)的文件芭届,然后丟到工程的Debug文件夾或者Release文件夾下就行了储矩,總之是要和.exe文件在同一目錄下。