學習Qt鳥,當年沒聽@Coding_Peon(http://weibo.com/u/1764451551?topnav=1&wvr=5&topsug=1)話好好學習QT和Python之類,現在還是要學。。。
於是開始找Qt的安裝文件,2013年7月初發布了Qt5.1.0,於是直接找最新的下載。下載過程中發現有一個http://qt-project.org 和 qt.digia.com,其中qt-project是開源版本,而digia是商業版本,所以要free的要去project,因為nokia把qt賣給digia了,因此以前集中的整理發生了一些變化。
和VS插件 http://download.qt-project.org/official_releases/vsaddin/qt-vs-addin-1.2.2-opensource.exe
很多資源在這里可以找到鏈接:http://www.qtcn.org/bbs/read.php?tid=1075
直接默認安裝即可。
(下面可能有遺漏或者錯誤之處還請指正)
首先是:平台問題x86 和 64
由於下載的是64位的因此需要把項目屬性也修改成64位對應。有幾處需要修改
首先是Qt Versions 雖然安裝了Qt 和 vs add in但是卻沒有自動添加,在使用前還需要手動添加,可在下圖中所示的add處點擊選擇安裝路徑
直接在add后彈出的框中選擇path選擇路徑
此外需要設置64位的地方有,在項目的屬性里面:
Linker里面
有時候會發現還是在提示不匹配,有可能有的地方又恢復了,或者重新設置以后需要再設置,比如這里的Qt Project Settings在從32位改成64位后需要重新選下版本。
下面還有一些是在編譯鏈接時候常碰到的:
- 頭文件包含問題比如include\QtWidgets include\QtANGLE之類,碰到這些問題也是包含路徑沒設置完全的,如果不嫌麻煩可以把提示出錯的地方將路徑寫全,比如如果提示
Cannot open “GLES2/gl2.h” 如果將路徑修改成#include<QtANGLE/GLES2/gl2.h>
但這樣太過繁瑣,其實只需要在包含目錄里面將對應路徑包含即可,比如添加了QtANGLE那么gl2的提示就不存在了,后續可能還需要QLabel需要添加QWidget的目錄,到時候缺什么添什么
- 環境變量問題,因為直接安裝后是在VS里面可以看到是C:\Qt\Qt5.1.0\5.1.0\msvc2012_64 如果直接添加C:\Qt\Qt5.1.0為環境變量不知什么效果
- 鏈接錯誤error LNK2019: unresolved external symbol "__declspec(dllimport) 之類
我們可以看到在
在這里有$(QTDIR)\lib那么說明lib的路徑是設置了,但是這里提示找不到,對應的lib,說明有地方沒有設置正確,由於這里提示的是Qwidget,於是在這里添加了(關於QTDIR可以在很多地方通過查詢宏查看,比如設置的時候點擊edit選擇macros:
)
Qt5Widget.lib
- 報如下的錯誤
原來是如http://blog.csdn.net/muyuyuzhong/article/details/7034301
或者如:
nimingzhe2008 wrote:
I got it.I should use QApplication instead of QCoreApplication in main.cpp.
Yeah That’s Correct. QCoreApplication is used for non GUI Applications. For more details check this QCoreApplication Class Reference. [qt-project.org]
來自 <http://qt-project.org/forums/viewthread/21624>
如下面的代碼:
//#include <QtCore/QCoreApplication>
#include <QApplication>
#include <QtGui>
#include <QLabel>
int main(int argc, char *argv[])
{
//QCoreApplication a(argc, argv);
QApplication a(argc, argv);
QLabel *label = new QLabel(QObject::tr("Hello world!"));
label->show();
return a.exec();
}
結果:
相關的一些配置鏈接:http://evilpenguin.cn/archives/505
http://blog.csdn.net/xiaozz_m608c/article/details/9214741
順便說下:在對於買手機上問了下師兄,我說Mate大屏好啊,然后問有1G版和2G版本,但差價比較大怎么破,他說關系也不很大,如果1G的話可能就是你前面開的應用后面再開其他的時候會被關掉鳥。不過很重要的一點是要買港行不要買國行,我說Why,國航哪里爛!
他說:國航把GSM給閹割了,而GSM是谷歌的統一處理平台,因為我們有很多APP都有消息需要接收並分發,但是如果每個進程都留一個后台程序保持常連接在手機中那這負擔也就太大了,雖然可以及時收到信息。而通過GSm平台相當於有一個管家在綜合負責所有這些app的消息接收以及分發,因此就不用沒人一管家,再加上谷歌設計的輕便因此會有很好的優化,此外有了這個GSM才可以進行谷歌賬號聯網並進行一些谷歌提供的服務等,但在國行都被閹割掉了,都木有了。。
而國內各家自成一體又不可能協商一致做個統一平台,因此只有你一個后台我一個后台等等,或者隔一段時間去咨詢下有沒消息之類,因此在耗電的同時也帶來了較多的延遲,wp也是一樣的。由於這么多后台因此什么省電模式也不見得真能保持這種省電狀態。
此外,WP和IOS都是偽多線程,也就是只有他們自家的進程才可以后台運行,而外面的進程在切換后都是掛起的!那怎么辦呢,怎么能聽歌呢?其實這時候就是說外面的程序可以調用系統的一些進程,因此比如你千千靜聽,然后切換就調用了系統自帶的播放軟件這樣也達到了后台播放的效果。也因此IOS上沒有BT下載,因為ios本身不支持bt下載。不過如果你的手機可以刷帶GSM的包,那其實也可以哦!