1. 程式人生 > >QT環境搭建: QT-4.8.6在windows下的使用 -(1)QT-4.8.6安裝配置使用

QT環境搭建: QT-4.8.6在windows下的使用 -(1)QT-4.8.6安裝配置使用

參考:

   方案1-2  Qt4.8.6/Qt4.8.7 for Windows(Qt Creator+MinGW)   

這裡我增加了QT編譯的過程,不過還是對該文件的原編寫者表示感謝!


    玩QT一段時間了,一直都是在linux下的環境,前幾天突然想著可不可以在windows下來玩玩,生成的程式還能夠自己在windows下玩玩!哈哈,想到這,就開始下面的工作!都是利用工作之餘做的,花了幾天時間吧,哈哈

1.方案選取;

  形如文前參考連結中,有三種方案,我選取了方案1裡的第二個方式,即用Qt4.8.6/Qt4.8.7 for Windows(Qt Creator+MinGW),需要到指定地址下載以下的軟體;

安裝軟體版本:

a.  QT(qt-4.8.6):  qt-opensource-windows-x86-mingw482-4.8.6-1.exe

b.  編譯器(Mingw)i686-4.8.2-release-posix-dwarf-rt_v3-rev3

c.  偵錯程式(gdb)qtcreator-gdb-7.4-MINGW32_NT-6.1-i686.tar.gz (這個我在這篇當中並沒有應用,感興趣的可以自己新增!)

d.  qtcreatorqt-creator-opensource-windows-x86-3.0.0.exe

對應的下載地址分別是:

2.第一步下載完成後,分別安裝這些

QT軟體到本地的指定目錄下,如下:

順序執行下列步驟:

qtcreator執行安裝檔案 ->安裝在:C:\Qt\qtcreator-3.0.0;

Mingw 解壓安裝檔案 ->請把裡面的資料夾mingw拷貝到路徑C:\Qt\

gdb: 解壓安裝檔案 -> 請裡面的資料夾qtcreator-gdb-7.4-MINGW32_NT-6.1-i686拷貝到目錄:C:\Qt\

qt-4.8.6執行安裝檔案 ->安裝在:C:\Qt\4.8.6_MinGW;當安裝提示Find installed MinGW          時 ,請使用者指向路徑C:\Qt\mingw

注:C:\Qt\目錄截圖如下:

 

3.設定windows環境變數;

修改前請先備份當前的環境變數!!!

因為我們後來在windows下執行QT程式,可執行程式預設會從這些路徑去獲取所需要的標頭檔案和庫函式;

步驟:桌面 -> 屬性 -> 高階系統設定->高階->環境變數->系統變數裡新增為變數path新增上:C:\Qt\4.8.6_MinGw\bin;C:\Qt\mingw\bin;C:\Qt\qtcreator-3.0.0\bin

再編輯一個變數:QMAKE,路徑為:C:\Qt\4.8.6_MinGW\bin,截圖如下:

 

確定即可;

ps:我這裡用的是使用者變數下編輯的,因為我的電腦就是一個使用者(管理者),所以等同於系統使用者;如果你的電腦是多使用者的,就用系統變數編輯;具體見:

4.在命令列下編譯QT

然後,為了以後能更方便的使用Qt,我們需要先編譯一下。在開始選單中,找到Qt by Digia v4.8.6 (MinGW 4.8.2 OpenSource)這個資料夾,開啟,裡面會有Qt 4.8.6Build Debug Libraries的一個批處理檔案,點選後會進入windows下的DOS介面,然後根據裡面的提示,根據自己的選擇來編譯這個庫。很簡單,就2步吧(第一步:o,第二步:y)。不過這個時間有點長,因為庫比較大,我電腦比較慢,差不多編譯了快4個小時,編譯時就和linux下的命令列介面一樣的,一行一行的指令往上飛。最後顯示如下圖,就成功了!

 

ps:原先在編譯過程中,還出現了一個小插曲,因為Mingw4.4.0不支援QT4.8.6,我一開始下載的是4.4.0,在編譯時,就提示了了錯誤:cc1plus.exe: error: unrecognized command line option "-fno-keep-inline-dllexport "後來網上看了部落格:連結忘記了!說是需要下載Mingw的4.8.2版本的!於是我就去下載4.8.2的了!然後就編譯成功了!

5.命令列測試qt環境是否搭建成功:

到這裡,windows下的Qt開發環境基本就配置好了。下面寫個小程式檢測環境是否搭建成功!

下面,在D:\study\Qt_Application\firstdemo目錄下,用文字編輯器建立一個檔案:firstdemo.cpp

寫入一下測試程式:

#include <QApplication>    //包含QApplication標頭檔案

#include <QPushButton>    //包含QPushButton標頭檔案

int main(int argc, char *argv[])    // 還是標準的main函式

{  

   QApplication app(argc, argv);     //構造應用,MFC中的WinApp  

    QPushButton hello("Hello world!");   //構造PushButton  

    hello.resize(100, 30);    //設定按鈕大小

    hello.show();       //顯示按鈕

    return app.exec();     //執行應用,MFC中的Run   

然後開啟開始選單中的  Qt 4.8.6 Command Prompt

從當前目錄切換到檔案放的位置:

逐步輸入命令:

D

cd  study\Qt_Application\firstdemo

qmake  -project

qmake  firstdemo.pro

make

最後,編譯成功通過,會在hello資料夾下的release資料夾中生成一個.exe檔案,雙擊執行即可。也可以在DOS下執行,進入資料夾目錄,直接輸入:hello.exe即可;

結果截圖如下:

 

這裡,我還列出了一些常用指令

dir 檢視檔案列表,同linux下的“ls

cd 改變檔案目錄 “cd ..”返回到上一層 “cd \”到所在磁碟,一般為c

del 刪除一個檔案

mkdir建立一個資料夾

rmdir 刪除一個空資料夾

notepad xx.cpp 用記事本開啟(如果沒有則是建立)xx.cpp檔案 也可以是.h檔案

6.qtcreator中配置執行環境;

以上步驟完成後,執行桌面快捷方式Qt Creator

(1)進入軟體->選單->工具->選項->構建和執行->Qt版本->手動設定,新增qmake路徑C:\Qt\4.8.6_MinGW\bin\qmake.exe

(2)進入軟體->選單->工具->選項->構建和執行->編譯器->手動設定,新增MinGW,並設定相應路徑。

編譯器路徑C:\Qt\mingw32\bin\g++.exe

(3)進入軟體->選單->工具->選項->構建和執行->偵錯程式->手動設定,新增MinGW Debugger,並設定相應路徑。

偵錯程式路徑C:\Qt\mingw32\bin\gdb.exe

(4)進入軟體->選單->工具->選項->構建和執行->構建套件(Kit),把編譯器選擇為"MinGW",偵錯程式選擇"MinGW Debugger"

Qt版本選擇為"Qt 4.8.6(4.8.6_MinGW)"

7.利用qtcreator來執行QT程式:

如果覺得使用命令列不習慣,那麼就可以安裝Qt creater,這是一個圖形化的設計編譯介面

前面第6步已經設定好工具後,就可以使用qtcreator了;

開啟qtcreator -> 建立工程 -> ApplicationQt widget Application,選擇->檔名為helloworld,目錄為D:\study\Qt_Application,確定->下一步->下一步->下一步->完成;

helloworld.ui 新增一個textedit,內容是:helloworld;接著分別執行:

執行qmake: 選單欄 -> build -> run qmake;

執行make:   選單欄-> build Project“helloworld”;

執行run:     選單欄-> run;

出現:

 

說明我們在windows下搭建QT-4.8.6的願望實現了,接下來可以好好享受QT的開發之旅了!哈哈哈

PS

加快Qt編譯的速度技巧。

Qt預設的編譯方式速度非常慢,可以使用多核編譯的方式來提升速度。。

進入軟體並開啟工程後->工具欄->專案->構建和執行->mingw32-make.exe替換為jom.exe

具體步驟:

Project ->Build中的Build Step中的Make -> details ->

 

改成:

 

然後再重新qmake,make,run, 發現,果然是要快一些!哈哈

PS:原來沒有執行第4-QT編譯的時候,用qtcreator寫一個helloworld程式,就會提示:程式異常結束;

ps: 這個問題困擾了我好幾天,後來到網上查詢也沒有找到可供解決的方案,很多覺得靠譜的提示大概是:庫使用錯誤,環境變數沒設對等等;看看自己的這些環境引數沒設錯啊,後面就看了一個部落格,說是QT需要先進行編譯,然後我就增加了第4步;哈哈