?? qmake-manual-4.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-win-commercial-3.0.5/qmake/book/qmake-tutorial.leaf:3 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Translator" content="Cavendish">
<meta name="Qt zh_CN Documents Website" content="http://www.qiliang.net/qt">
<title>qmake教程</title>
<style type="text/css"><!--
h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; font-family: "Times New Roman" }
--></style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr bgcolor="#E5E5E5">
<td valign=center>
<a href="index.html">
<font color="#004faf">主頁</font></a>
| <a href="classes.html">
<font color="#004faf">所有的類</font></a>
| <a href="mainclasses.html">
<font color="#004faf">主要的類</font></a>
| <a href="annotated.html">
<font color="#004faf">注釋的類</font></a>
| <a href="groups.html">
<font color="#004faf">分組的類</font></a>
| <a href="functions.html">
<font color="#004faf">函數</font></a>
</td>
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table>
<p align="right">[<a href="qmake-manual-3.html">上一章:10分鐘學會使用qmake</a>] [<a href="qmake-manual.html">qmake首頁</a>] [<a href="qmake-manual-5.html">下一章:qmake概念</a>]</p>
<h2 align="center">qmake教程</h2>
<h3><a name="1"></a>qmake教程介紹</h3>
<p>這個教程可以教會你如何使用<em>qmake</em>。我們建議你看完這個教程之后讀一下<em>qmake</em>手冊。</p>
<h3><a name="2"></a>開始很簡單</h3>
<p>讓我們假設你已經完成了你的應用程序的一個基本實現,并且你已經創建了下述文件:</p>
<ul><li><p>hello.cpp</p>
<li><p>hello.h</p>
<li><p>main.cpp</p>
</ul>
<p>你可以在<em>qt/qmake/example</em>中發現這些文件。你對這個應用程序的配置僅僅知道的另一件事是它是用Qt寫的。首先,使用你所喜歡的純文本編輯器,在<em>qt/qmake/tutorial</em>中創建一個叫做<em>hello.pro</em>的文件。你所要做的第一件事是添加一些行來告訴<em>qmake</em>關于你所開發的項目中的源文件和頭文件這一部分。</p>
<p>我們先把源文件添加到項目文件中。為了做到這點,你需要使用SOURCES變量。只要用<em>SOURCES +=</em>來開始一行,并且把hello.cpp放到它后面。你需要寫成這樣:</p>
<pre>
SOURCES += hello.cpp
</pre>
<p>我們對項目中的每一個源文件都這樣做,直到結束:</p>
<pre>
SOURCES += hello.cpp
SOURCES += main.cpp
</pre>
<p>如果你喜歡使用像Make一樣風格的語法,你也可以寫成這樣,一行寫一個源文件,并用反斜線結尾,然后再起新的一行:</p>
<pre>
SOURCES = hello.cpp \
main.cpp
</pre>
<p>現在源文件已經被列到項目文件中了,頭文件也必須添加。添加的方式和源文件一樣,除了變量名是HEADERS。</p>
<p>當你做完這些時,你的項目文件就像現在這樣:</p>
<pre>
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
</pre>
<p>目標名稱是自動設置的,它被設置為和項目文件一樣的名稱,但是為了適合平臺所需要的后綴。舉例來說,加入項目文件叫做“hello.pro”,在Windows上的目標名稱應該是“hello.exe”,在Unix上應該是“hello”。如果你想設置一個不同的名字,你可以在項目文件中設置它:</p>
<pre>
TARGET = helloworld
</pre>
<p>最后一步是設置<em>CONFIG</em>變量。因為這是一個Qt應用程序,我們需要把“qt”放到CONFIG這一行中,這樣<em>qmake</em>才會在連接的時候添加相關的庫,并且保證<em>moc</em>和<em>uic</em>的連編行也被包含到Makefile中。</p>
<p>最終完成的項目文件應該是這樣的:</p>
<pre>
CONFIG += qt
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
</pre>
<p>你現在可以使用<em>qmake</em>來為你的應用程序生成Makefile。在你的應用程序目錄中,在命令行下輸入:</p>
<pre>
qmake -o Makefile hello.pro
</pre>
<p>然后根據你所使用的編譯器輸入<em>make</em>或者<em>nmake</em>。</p>
<h3><a name="3"></a>使應用程序可以調試</h3>
<p>應用程序的發布版本不包含任何調試符號或者其它調試信息。在開發過程中,生成一個含有相關信息的應用程序的調試版本是很有用處的。通過在項目文件的CONFIG變量中添加“debug”就可以很簡單地實現。</p>
<p>例如:</p>
<pre>
CONFIG += qt debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
</pre>
<p>像前面一樣使用<em>qmake</em>來生成一個Makefile并且你就能夠調試你的應用程序了。</p>
<h3><a name="4"></a>添加特定平臺的源文件</h3>
<p>在編了幾個小時的程序之后,你也許開始為你的應用程序編寫與平臺相關的部分,并且決定根據平臺的不同編寫不同的代碼。所以現在你有兩個信文件要包含到你的項目文件中-<em>hello_win.cpp</em>和<em>hello_x11.cpp</em>。我們不能僅僅把這兩個文件放到<em>SOURCES</em>變量中,因為那樣的話會把這兩個文件都加到Makefile中。所以我們在這里需要做的是根據<em>qmake</em>所運行的平臺來使用相應的作用域來進行處理。</p>
<p>為Windows平臺添加的依賴平臺的文件的簡單的作用域看起來就像這樣:</p>
<pre>
win32 {
SOURCES += hello_win.cpp
}
</pre>
<p>所以如果<em>qmake</em>運行在Windows上的時候,它就會把<em>hello_win.cpp</em>添加到源文件列表中。如果<em>qmake</em>運行在其它平臺上的時候,它會很簡單地把這部分忽略。現在接下來我們要做的就是添加一個X11依賴文件的作用域。</p>
<p>當你做完了這部分,你的項目文件應該和這樣差不多:</p>
<pre>
CONFIG += qt debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hello_win.cpp
}
x11 {
SOURCES += hello_x11.cpp
}
</pre>
<p>像前面一樣使用<em>qmake</em>來生成Makefile。</p>
<h3><a name="5"></a>如果一個文件不存在,停止qmake</h3>
<p>如果某一個文件不存在的時候,你也許不想生成一個Makefile。我們可以通過使用exists()函數來檢查一個文件是否存在。我們可以通過使用error()函數把正在運行的<em>qmake</em>停下來。這和作用域的工作方式一樣。只要很簡單地用這個函數來替換作用域條件。對main.cpp文件的檢查就像這樣:</p>
<pre>
!exists( main.cpp ) {
error( "No main.cpp file found" )
}
</pre>
<p>“!”用來否定這個測試,比如,如果文件存在,<tt>exists( main.cpp )</tt>是真,如果文件不存在,<tt>!exists( main.cpp )</tt>是真。</p>
<pre>
CONFIG += qt debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hello_win.cpp
}
x11 {
SOURCES += hello_x11.cpp
}
!exists( main.cpp ) {
error( "No main.cpp file found" )
}
</pre>
<p>像前面一樣使用<em>qmake</em>來生成Makefile。如果你臨時改變<em>main.cpp</em>的名稱,你會看到信息,并且<em>qmake</em>會停止處理。</p>
<h3><a name="6"></a>檢查多于一個的條件</h3>
<p>假設你使用Windows并且當你在命令行運行你的應用程序的時候你想能夠看到qDebug()語句。除非你在連編你的程序的時候使用console設置,你不會看到輸出。我們可以很容易地把<em>console</em>添加到CONFIG行中,這樣在Windows下,Makefile就會有這個設置。但是如果告訴你我們只是想在當我們的應用程序運行在Windows下<em>并且</em>當<em>debug</em>已經在CONFIG行中的時候,添加<em>console</em>。這需要兩個嵌套的作用域;只要生成一個作用域,然后在它里面再生成另一個。把設置放在最里面的作用域里,就像這樣:</p>
<pre>
win32 {
debug {
CONFIG += console
}
}
</pre>
<p>嵌套的作用域可以使用冒號連接起來,所以最終的項目文件看起來像這樣:</p>
<pre>
CONFIG += qt debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hello_win.cpp
}
x11 {
SOURCES += hello_x11.cpp
}
!exists( main.cpp ) {
error( "No main.cpp file found" )
}
win32:debug {
CONFIG += console
}
</pre>
<p>就這些了!你現在已經完成了<em>qmake</em>的教程,并且已經準備好為你的開發項目寫項目文件了。</p>
<!-- eof -->
<p align="right">[<a href="qmake-manual-3.html">上一章:10分鐘學會使用qmake</a>] [<a href="qmake-manual.html">qmake首頁</a>] [<a href="qmake-manual-5.html">下一章:qmake概念</a>]</p>
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright © 2002
<a href="http://www.trolltech.com">Trolltech</a>
<td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a>
<td><a href="zh_CN.html">譯者:Cavendish</a>
<td align=right><div align=right>Qt 3.0.5版</div>
</table></div></address></body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -