自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解析 VC 2005 下編譯安裝并開發(fā) QT 4.4.3 應(yīng)用程序

移動開發(fā)
本文介紹的是解析 VC 2005 下編譯安裝并開發(fā) QT 4.4.3 應(yīng)用程序,很詳細的介紹,先來看內(nèi)容。

VC 2005 下編譯安裝并開發(fā) QT 4.4.3 應(yīng)用程序是本文要介紹的內(nèi)容,一部分時從壇子里看的,一部分時心得,不多說,先來看內(nèi)容。最近研究webkit,順便研究了一下QT。發(fā)現(xiàn)網(wǎng)上流傳的一個轉(zhuǎn)帖《VC 2005 下如何編譯安裝并開發(fā) QT 4.4.0 應(yīng)用程序》

Qt 是一個跨平臺的C++圖形用戶界面庫,由挪威TrollTech公司出品,Qt支持所有的UNIX系統(tǒng),包括Linux系統(tǒng),還支持WinNT/Win2k、Windows 95/98平臺。

本文將使用簡單的幾個步驟說明在VC 2005下如何編譯安裝并開發(fā)QT應(yīng)用程序:

一、下載及安裝

1. 從官方網(wǎng)站http://trolltech.com/lang/cn/downloads/open-source-downloads下載QT最新版本源代碼,ftp://ftp.trolltech.com/qt/source/qt-win-opensource-src-4.4.0.zip,假定解壓到D:\Qt\4.4.0目錄;

2. 從VC 2005的安裝路徑找到vsvars32.bat,例如:在E:\Program Files\Microsoft Visual Studio 8\Common7\Tools,運行cmd,

  1. C:\> E:  
  2. E:\> "E:\Program Files\Microsoft Visual Studio 8\Common7\Tools"  
  3. E:\Program Files\Microsoft Visual Studio 8\Common7\Tools> vsvars32.bat  
  4. E:\Program Files\Microsoft Visual Studio 8\Common7\Tools> D:  
  5. D:\> cd D:\Qt\4.4.0  
  6. D:\Qt\4.4.0> configure -debug-and-release -static  
  7. D:\Qt\4.4.0> nmake 

configure -debug-and-release -static參數(shù)的意義是告訴QT同時編譯為Debug和Release兩個版本的靜態(tài)鏈接庫,不指定參數(shù)則編譯為Debug版本的動態(tài)鏈接庫。 configure大約需要十幾分鐘,nmake則大約需要1小時左右,視你的電腦性能而定。

3. 將Qt路徑添加到VC編譯環(huán)境中,工具->選項->項目和解決方案->VC++目錄,在包含文件一欄添加: D:\Qt\4.4.0\include\QtGui;D:\Qt\4.4.0\include\QtCore;D:\Qt\4.4.0\include,在庫文件一欄添加D:\Qt\4.4.0\lib;將QT安裝路徑添加到Path系統(tǒng)環(huán)境變量中,例如:D:\Qt\4.4.0\bin;

二、交叉編譯

1. 啟動VC,創(chuàng)建一個Hello Qt工程,將工程設(shè)置改為使用多字節(jié)字符集,因為Qt Application的入口函數(shù)不是Unicode的;

2. 啟動Qt Designer,新建窗體->選擇對話框窗體(第一個選擇項),在新建的對話框上面放一個Label控件,將其Title修改為“Hello Qt!”,將該窗體保存到剛才用VC建立的Hello Qt工程目錄,文件名為Hello.ui;

3. 將Hello.ui作為源文件添加到Hello Qt工程中,在Hello.ui上點擊右鍵->屬性,在屬性對話框中選擇自定義生成步驟->常規(guī),在命令行一欄輸入:uic.exe Hello.ui -o HelloUi.h,說明一欄輸入:正在編譯Hello.ui ,在輸出一欄輸入:HelloUi.h,在附加依賴項一欄輸入:uic.exe;Hello.ui,點擊確定;

如果是QObject的子類,則要用:moc.exe XXX.h -o debug/moc_XXX.cpp命令。 例如:

  1. E:\backup20080122\qt-win-opensource-src-4.4.3\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB 
  2. -DQT_THREAD_SUPPORT -I"e:\backup20080122\qt-win-opensource-src-4.4.3\include\QtCore" 
  3. -I"e:\backup20080122\qt-win-opensource-src-4.4.3\include\QtCore" -I"e:\backup20080122\qt-win-opensource-src-4.4.3\include\QtGui" 
  4. -I"e:\backup20080122\qt-win-opensource-src-4.4.3\include\QtGui" -I"e:\backup20080122\qt-win-opensource-src-4.4.3\include" -I"."
  5. -I"e:\backup20080122\qt-win-opensource-src-4.4.3\include\ActiveQt" -I"debug" -I"." 
  6. -Ie:\backup20080122\qt-win-opensource-src-4.4.3\mkspecs\win32-msvc2005 -D_MSC_VER=1400 
  7. -DWIN32 WebViewCollection.h -o debug\moc_WebViewCollection.cpp 

注意:也可以不使用手工添加方式添加編譯ui文件,直接使用qmake編譯成VC工程,但這樣會破壞原來的工程設(shè)置,因為當(dāng)ui文件修改或添加新的ui后需要重新qmake,重新生成VC工程,因此這里采用了手工添加并設(shè)置編譯腳本的方式,qmake的用法如下:

  1. D:\Hello Qt> qmake -project -t vcapp -o HelloQt.pro  
  2. D:\Hello Qt> qmake 

不需要指定ui文件,qmake會將當(dāng)前目錄所有的ui文件以及C++文件創(chuàng)建一個VC工程。另外QT 4.4是對VC各個版本都兼容的,VC6、VC2003、VC2005、VC2008,編譯安裝步驟都是一致的。

4、在Hello.ui上點擊右鍵->編譯,將在當(dāng)前工程目錄生成HelloUi.h文件;

5、注意:此時需要將生成的HelloUi.h文件添加到工程中。 如果是QObject子類生成的moc_XXX.cpp,也需要添加到工程中。

否則會出現(xiàn):QtCore.lib(qtimer.obj) : error LNK2001: unresolved external symbol __imp___invalid_parameter_noinfo之類的錯誤。

6、打開Hello Qt.cpp,在main函數(shù)添加啟動代碼,完整代碼如下:

  1. // Hello Qt.cpp : 定義控制臺應(yīng)用程序的入口點。  
  2. #include "stdafx.h"  
  3. #include "HelloUi.h"   // ui文件編譯生成的C++文件  
  4. #include <QApplication> 
  5. int _tmain(int argc, _TCHAR* argv[])  
  6. {  
  7. QApplication app(argc, argv);  
  8. QDialog * dlg = new QDialog(); // Qt 窗口對象會自動回收所有的子窗口對象,這里的dlg將被作為最外層窗口,
  9. 將由QApplication進行回收,因此Qt窗口只能在堆分配對象,且不必使用delete。  
  10. Ui::Dialog ui;   // Dialog為ui文件編譯生成的C++類,參見HelloUi.h  
  11. ui.setupUi(dlg);  
  12. dlg->show();  
  13. return app.exec();  

在工程設(shè)置附加依賴項中添加QtCore.lib QtGui.lib,編譯工程,運行即可出現(xiàn)Hello Qt程序。

Windows程序里面的消息機制,在MAC平臺則是蘋果事件,各平臺的驅(qū)動方式各異,Qt則將這些不一致的平臺機制統(tǒng)一起來,形成了信號和槽機制,來處理各種系統(tǒng)事件,以實現(xiàn)跨平臺的目的,因此Qt程序幾乎不經(jīng)過任何修改,便可以在其它平臺編譯通過。

但是我用其中的方法時,編譯時不能通過:

  1. QtCore.lib(qtimer.obj) : error LNK2001: unresolved external symbol __imp___invalid_parameter_noinfo 

(后來才知道,這是因為沒有把moc生成的moc_XXX.cpp文件添加到工程導(dǎo)致的)

#p#

采用qmake方法才正常編譯通過。下面把我的方法記錄如下:

一、下載及安裝

1、從官方網(wǎng)站http://trolltech.com/lang/cn/downloads/open-source-downloads下載QT最新版本源代碼,ftp://ftp.trolltech.com/qt/source/qt-win-opensource-src-4.4.0.zip,假定解壓到D:\Qt\4.4.0目錄;

2. 從VC 2005的安裝路徑找到vsvars32.bat,例如:在E:\Program Files\Microsoft Visual Studio 8\Common7\Tools,運行cmd,

  1. C:\> E:  
  2. E:\> "E:\Program Files\Microsoft Visual Studio 8\Common7\Tools"  
  3. E:\Program Files\Microsoft Visual Studio 8\Common7\Tools> vsvars32.bat  
  4. E:\Program Files\Microsoft Visual Studio 8\Common7\Tools> D:  
  5. D:\> cd D:\Qt\4.4.3  
  6. D:\Qt\4.4.3> configure -debug-and-release -static  
  7. D:\Qt\4.4.3> nmake 

configure -debug-and-release -static參數(shù)的意義是告訴QT同時編譯為Debug和Release兩個版本的靜態(tài)鏈接庫,不指定參數(shù)則編譯為Debug版本的動態(tài)鏈接庫。 configure大約需要十幾分鐘,nmake則大約需要2小時左右,視你的電腦性能而定。

3、設(shè)置環(huán)境變量:

我的電腦>屬性>高級>環(huán)境變量>用戶變量里面設(shè)置幾個變量:

PATH中增加C:\Qt\4.4.3\bin(如果沒有就創(chuàng)建),

創(chuàng)建QMAKESPEC值為 win32-msvc2005,這個值還是根據(jù)你要生成的Vs版本,6.0 使用win32-msvc, 2003 使用win32-msvc.net, 2005就是 win32-msvc2005  

創(chuàng)建QTDIR值為 C:\Qt\4.4.3

如果你機器上安裝多個版本的QT,就通過這三個環(huán)境變量來切換了,我同時有C:\Qt\4.0.0,那么就把那些前綴都換成C:\Qt\4.0.0,就使用4.0了。最后為了使的你剛才修改的環(huán)境變量生效,重啟cmd,可以通過C:\> qmake -v來看你使用的QT版本。

二、交叉編譯

1、啟動Qt Designer,新建窗體->選擇對話框窗體(第一個選擇項),在新建的對話框上面放一個Label控件,將其Title修改為“Hello Qt!”,將該窗體保存到HelloQT目錄下,文件名為HelloQT.ui;

2、運行命令提示行,到HelloQT目錄下:

3、運行 

  1. HelloQT> qmake -project -t vcapp -o HelloQT.pro  
  2.             HelloQT> qmake 

4、此時,HelloQt文件夾下生成了VC工程文件:HelloQT.vcproj; 此外還有生成的ui_helloQT.h文件

5、將此工程添加到你的解決方案中。

6、向工程中添加helloQT.cpp

  1. // helloQT.cpp : Defines the entry point for the console application.  
  2. // ui文件編譯生成的C++文件  
  3. #include "ui_helloQT.h"  
  4. int main(int argc, char* argv[])  
  5. {  
  6.     QApplication app(argc, argv);  
  7.     QDialog * dlg = new QDialog(); // Qt 窗口對象會自動回收所有的子窗口對象,這里的dlg將被作為最外層窗口,
  8. 將由QApplication進行回收,因此Qt窗口只能在堆分配對象,且不必使用delete。  
  9.     Ui::Dialog ui;   // Dialog為ui文件編譯生成的C++類,參見HelloUi.h  
  10.     ui.setupUi(dlg);  
  11.     dlg->show();  
  12.     return app.exec();  

編譯,運行通過。

以上基本上可以開發(fā)簡單的程序了,如果需要使用opengl等其他的,自己google下吧。有米的人也可以直接購買QT的商業(yè)版,可以直接集成到VS里面去,有向?qū)У葨|西。我使用Qt 4.0的還是比較爽的。自己有時間好好看看examples里面的例子,開發(fā)的時候也可以作為參考,很好的資料。

小結(jié):VC 2005 下編譯安裝并開發(fā) QT 4.4.3 應(yīng)用程序的內(nèi)容介紹完了,希望本文對你有多幫助,更多資料請參考編輯推薦!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-09 09:12:12

QT symbian

2010-01-11 10:15:09

FedoraFedora 12Mplayer

2011-05-03 09:14:45

QtOvi商店Symbian

2010-01-26 13:29:46

VC++應(yīng)用程序

2011-08-12 14:54:45

iPhone委托

2010-08-12 15:52:34

Flex應(yīng)用程序

2009-12-10 13:47:06

VS2005應(yīng)用程序

2011-07-02 14:03:12

Linux Qt

2011-06-09 14:56:53

QT 編譯

2010-01-22 10:44:10

VC++應(yīng)用程序

2010-08-12 15:44:25

Flex應(yīng)用程序

2011-06-14 14:57:06

QT Python GUI

2021-02-05 11:55:37

PythonWindows平臺代碼

2011-06-24 13:38:32

QT 編譯 安裝

2009-12-21 15:48:29

WCF應(yīng)用程序

2010-03-02 14:24:00

Android應(yīng)用程序

2011-09-01 10:01:35

PhoneGap應(yīng)用程序GoodDay

2010-05-02 14:35:47

Meego開發(fā)

2012-02-08 15:06:31

ibmdw

2022-09-19 00:37:13

SaaS云計算開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號