然後,我希望我寫的程式可以在windows和linux下都可以跑~
在windows下安裝Qt請參考良葛格學習筆記
在linux下,寫好程式碼之後,
用qmake -project指定產生.pro檔,
再用qmake依.pro產生Makefile檔
再make編譯程式,就這樣,非常簡單
但是,在windows下,依上面的步驟,確出現錯誤,找不到檔案,
決解方法就是到Makefile.Debug在INCPATH的最後面加入所有我們自己所建立的header file的目錄…
例:
INCPATH = -I"c:\Qt\4.4.3\include\QtCore" -I"c:\Qt\4.4.3\include\QtCore" -I"c:\Qt\4.4.3\include\QtGui" -I"c:\Qt\4.4.3\include\QtGui" -I"c:\Qt\4.4.3\include" -I"." -I"c:\Qt\4.4.3\include\ActiveQt" -I"debug" -I"." -I"c:\Qt\4.4.3\mkspecs\win32-g++" -I"src\widget" -I"src\items"
後面藍色的部分就是我新增的部分~
解決!!
[2009.02.06] 補充
在觀查完linux與windows下的*.pro檔之後,知道為什麼會出現這一個問題了。
可能是windows下運行qmake -project的程式沒有寫好吧~
在windows下qmake -project下的*.pro的INCLUDEPATH的欄位只有 .
所以當然就找不到我所需要的header file啦~
只要在後面加上所有的header file的路徑即可,此問題只有在windows下用qmake -project會出現
TEMPLATE = app
CONFIG = qt warn_on release
DESTDIR = ./ # 執行檔被建立後,擺放的位置
HEADERS = miniwin.h # 我們建立的class header
SOURCES = miniwin.cpp \ # 我們建立的class主程式
main.cpp
INCLUDEPATH += ./ # 指定include的路徑,例如/usr/local/xxx.h,則要加入/usr/local
DEPENDPATH += ./ # 所有cpp檔案的路徑
LIBS += # 指定要使用到的Library,應該是.so之類的動態library
INTERFACES =
TARGET = miniwin # 被建立的執行檔名稱
[2013.01.05 補充]
今天嘗試在Windows XP安裝Qt 4.8.4的流程如下:
先去下載MinGW Compiler for Windows,
因為,我們要下載的Qt 4.8.4是指定要MinGW 4.4 Compiler,
若用比較新的MinGW反而會有一些不預期的問題,
所以,要先去尋找MinGW 4.4,
不過,現在大部分官方網站都找不到MinGW 4.4,
我是直接用MinGW-gcc440_1.zip關鍵字在網路上尋找,
一下子就找到了。
下載頁面
下載之後,把它解壓縮到C:\MinGW
再來是安裝Qt,
Qt的下載頁面
下載完後,裡面就已經有編譯好的Demo的application,
如果要重新compiler成Open source的license的話,則必需要重新Compiler,則在
「開始」→「所有程式」→「Qt by Digia v4.6.4 (MinGW OpenSource)」→「Qt 4.6.4 (Build Debug Libraries)」
這樣會重新開始編譯所有demo的source code。
Build完之後,直接打qtdemo就可以執行demo的application了。
若一般的compiler自己的程式的話,則使用
「開始」→「所有程式」→「Qt by Digia v4.6.4 (MinGW OpenSource)」→「Qt 4.6.4 Command Prompt」
會把Qt的環境設定好。
Build code的流程請參考如何build出不需要另外建置環境的QT exe檔
QtCreator則是用Qt Creator 2.6.1的版本
可以完整編譯完qtdemo的組合
因為不像windows其它IDE一樣,全部都是包好的情況下,
所以,記錄一下整合的版本
[MinGW-gcc440_1.zip]
[qt-creator-windows-opensource-2.6.1.exe]
[qt-win-opensource-4.6.4-mingw.exe]
參考資料:
用QT建立一個基本視窗
windows上安装MinGW 4.4、Qt library 4.8.4和Qt Creator
沒有留言:
張貼留言