qt中常用工程文件的介紹 .

火星人 @ 2014-03-03 , reply:0


qt中常用工程文件的介紹 .

qt中常用工程文件的介紹 .




qmake Common Projects(qmake普通工程)
    這章描述怎樣去創建基於QT的三種一般工程的工程文件。雖然他們使用許多相同的變數,但是他們中的每一個都有特殊工程的變數用於定製輸出文件。
    特殊平台的變數不在這描述,對於構建用於mac os x系統的一般二進位文件和處理visual studio文件的問題,建議讀者去閱讀部署qt應用程序章節。


1.構建一個應用程序
    應用程序(app)模板告訴qmake創建一個用於構建一個應用程序的makefile文件。使用這個模板,應用程序的種類可以通過CONFIG變數指定。windows指定這應用程序是一個windows界面程序,consol指定這個應用程序是一個控制台應用程序,這個值僅僅能夠在應用程序(app)模板中使用。
    應用程序模板中可以使用的變數如下:
    HEADERS - A list of all the header files for the application.
    SOURCES - A list of all the source files for the application.
    FORMS - A list of all the UI files (created using Qt Designer) for the application.
    LEXSOURCES - A list of all the lex source files for the application.
    YACCSOURCES - A list of all the yacc source files for the application.
    TARGET - Name of the executable for the application. This defaults to the name of the project          file. (The extension, if any, is added automatically).
    DESTDIR - The directory in which the target executable is placed.
    DEFINES - A list of any additional pre-processor defines needed for the application.
    INCLUDEPATH - A list of any additional include paths needed for the application.
    DEPENDPATH - The dependency search path for the application.
    VPATH - The search path to find supplied files.
    DEF_FILE - Windows only: A .def file to be linked against for the application.
    RC_FILE - Windows only: A resource file for the application.
    RES_FILE - Windows only: A resource file to be linked against for the application.
2.構建一個庫
    庫(lib)模板告訴qmake創建一個用於構建一個庫的makefile文件。使用這個模板的時候,除了應用模板中提到的可以使用的變數外,還可以使用VERSION變數。你可以在工程文件中用這些變數指定關於庫的信息。
    使用庫模板的時候CONFIG可以使用如下值:dll,指明是一個共享庫;staticlib,指明是一個靜態庫;plugin,這個庫是一個插件,同時也是一個共享庫。
    VERSION變數用於指定庫的版本號。
    庫文件的名字是基於平台的。比如,在X11和Mac OS X系統下,庫的名字是有前綴lib,但是在windwos下是沒有的。
3.構建一個插件
使用lib模板可以構建插件,qmake使用這個模板產生一個makefile文件,使用這個makefile文件產生一個適用於每個平台的不同形式的插件。
4.構建一個設計師插件
qt設計師插件用一組配置構建。可以通過在文件中配置CONFIG變數使能這些設置,
比如:CONFIG += designer plugin
5.在調試模式和發布模式下構建和安裝
有些時候,我們必須在兩種模式下構建一個工程。雖然CONFIG可以保持debug和release兩種選項,但是前者覆蓋了後者。
1)為了在兩種模式下構建工程,你必須增加debug_and_release選項到CONFIG變數。
    CONFIG += debug_and_release  CONFIG(debug, debug|release) {
     TARGET = debug_binary
  } else {
        TARGET = release_binary
    }通過調用make all可以生成兩個文件
   
   當配置CONFIG += build_all選項后直接輸make則可以構建兩種模式下的文件,否則的話默認只構建debug模式下的文件。
2)build_all選項也保證了在安裝規則被調用的時候,兩個版本的程序都能被安裝。
在不同的平台上構建不同的程序名字也是可以的。比如一個庫和插件可以按照慣例在不同的平台上命名為不同的名字。
比如在windows和unix下:CONFIG(debug, debug|release) {
     mac: TARGET = $$join(TARGET,,,_debug)
     win32: TARGET = $$join(TARGET,,d)
}在上面這個片段中,在debug模式下構建程序時將修改構建目標的名稱。也可增加else分支,增加在release模式下的特殊處理。


下面在上篇文章中提到的實例中增加本章的一些配置: CONFIG += qt
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

CONFIG += debug_and_release


  CONFIG(debug, debug|release) {
     TARGET = hello
  } else {
        TARGET = hello
    }
CONFIG += build_all

CONFIG(debug, debug|release) {
     mac: TARGET = $$join(TARGET,,,_debug)
     win32: TARGET = $$join(TARGET,,d)
  }else{
  mac: TARGET = $$join(TARGET,,,_release)
     win32: TARGET = $$join(TARGET,,r)
  }
《解決方案》

謝謝分享



[火星人 via ] qt中常用工程文件的介紹 .已經有138次圍觀

http://www.coctec.com/docs/service/show-post-1317.html