曙海教育集团论坛Linux专区Linux技术讨论区 → qmake命令参考


  共有6665人关注过本帖树形打印

主题:qmake命令参考

客人(58.34.*.*)
  1楼


qmake命令参考  发帖心情 Post By:2009-3-10 21:34:20

qmake Command Reference
qmake Command Reference
About This Reference

Command Line Options

System Variables

Functions

Environment Variables and Configuration

About This Reference
This reference is a detailed index of all command line options, configurations and internal variables used by the cross-platform makefile generation utility qmake.

In addition to the variables and functions described in the following sections, qmake project files may also include comments. Comments begin with the '#' symbol and run to the end of the line.

Command Line Options
Syntax
qmake [options] files

Options
The following options can be specified on the command line to qmake:

-o file
qmake output will be directed to file. if this argument is not specified, then qmake will try to guess a suitable name. If '-' is specified, output is directed to stdout.

-unix
qmake will run in unix mode. In this mode, Unix file naming and path conventions will be used, additionally testing for unix (as a scope) will succeed. This is the default mode on all Unices.

-macx
qmake will run in Mac OS X mode. In this mode, Unix file naming and path conventions will be used, additionally testing for macx (as a scope) will succeed. This is the default mode on Mac OS X.

-win32
qmake will run in win32 mode. In this mode, Windows file naming and path conventions will be used, additionally testing for win32 (as a scope) will succeed. This is the default mode on Windows.

-d
qmake will output (hopefully) useful debugging information.

-t tmpl
qmake will override any set TEMPLATE variables with tmpl.

-help
qmake will go over these features and give some useful help.

There are also warning options that can help to find problems in your project file:

-Wall
With this qmake will turn on all known warnings.

-Wnone
No warning information will be generated by qmake.

-Wparser
qmake will only generate parser warnings, this will alert you to common pitfalls, and potential problems in the parsing of your .pro files.

-Wlogic
Again qmake will warn of common pitfalls, and potential problems. This can include (but not limited to) checking if a file is placed into a list of files multiple times, if a file cannot be found, etc.

qmake supports two different modes of operation. The first mode, which is the default is makefile generation. In this mode, qmake will take a .pro file and turn it into a makefile. Creating makefiles is covered by this reference guide, there is another mode which generates .pro files.

To toggle between these modes you must specify in the first argument what mode you want to use. If no mode is specified, qmake will assume you want makefile mode. The available modes are:

-makefile
qmake output will be a makefile (Makefile mode).

-project
qmake output will be a project file (Project file mode).

Makefile Mode
In Makefile mode qmake will generate a makefile. Additionally you may supply the following arguments in this mode:

-after
qmake will process assignments given on the commandline after the specified files.

-nocache
qmake will ignore the .qmake.cache file.

-nodepend
qmake will not generate any dependency information.

-cache file
qmake will use file as the cache file, ignoring any other .qmake.cache file found

-spec spec
qmake will use spec as a path to platform-compiler information and QMAKESPEC will be ignored.

The files argument can be a list of one or more project files, separated by spaces. You may also pass qmake assignments on the command line here and they will be processed before all files specified, for example:

qmake -makefile -unix -o Makefile "CONFIG+=test" test.pro

If however you are certain you want your variables processed after the the files specified, then you may pass the -after argument. When this is specified all assignments on the commandline after the -after option will be postponed until after the specified files are parsed.

This will generate a Makefile, from test.pro with Unix pathnames. However many of these arguments aren't necessary as they are the default. Therefore the line can be simplified on Unix to:

qmake "CONFIG+=test" test.pro

Projectfile Mode
In Projectfile mode qmake will generate a project file. Additionally, you may supply the following arguments in this mode:

-r
qmake will look through supplied directories recursively

-nopwd
qmake will not look in your current working directory for source code and only use the specified files

The files argument can be a list of files or directories. If a directory is specified, then it will be included in the DEPENDPATH variable and relevant code from there will be included in the generated project file, if a file is given it will go into the correct variable depending on extension (i.e. .ui files go into FORMS, .cpp files go into SOURCES, etc). Here too you may pass assignments on the commandline, when doing so these assignments will be placed last in the generated .pro file.

System Variables
Frequently Used System Variables

Rarely Used System Variables

Frequently Used System Variables
The following variables are recognized by qmake and are used most frequently when creating project files.

CONFIG
The CONFIG variable specifies project configuration and compiler options. The values will be recognized internally by qmake and have special meaning. They are as follows.

These CONFIG values control compilation flags:

release - Compile with optimization enabled, ignored if "debug" is specified

debug - Compile with debug options enabled

warn_on - The compiler should emit more warnings than normally, ignored if "warn_off" is specified

warn_off - The compiler should only emit severe warnings.

These options define the application/library type:

qt - The target is a Qt application/library and requires the Qt header files/library. The proper include and library paths for the Qt library will automatically be added to the project.

opengl - The target requires the OpenGL (or Mesa) headers/libraries. The proper include and library paths for these libraries will automatically be added to the project.

thread - The target is a multi-threaded application or library. The proper defines and compiler flags will automatically be added to the project.

x11 - The target is a X11 application or library. The proper include paths and libraries will automatically be added to the project.

windows - The target is a Win32 window application (app only). The proper include paths,compiler flags and libraries will automatically be added to the project.

console - The target is a Win32 console application (app only). The proper include paths, compiler flags and libraries will automatically be added to the project.

dll - The target is a shared object/DLL.The proper include paths, compiler flags and libraries will automatically be added to the project.

staticlib - The target is a static library (lib only). The proper compiler flags will automatically be added to the project.

plugin - The target is a plugin (lib only). This enables dll as well.

The CONFIG variable will also be checked when resolving scopes. You may assign anything to this variable.

For example:

CONFIG += qt console newstuff
...
newstuff {
 SOURCES += new.cpp
 HEADERS += new.h
}

DEFINES
qmake adds the values of this variable as compiler C preprocessor macros (-D option).

For example:

 
DEFINES += USE_MY_STUFF QT_DLL

DEF_FILE
This is only used on Windows when using the 'app' template.

Specifies a .def file to be included in the project.

DESTDIR
Specifies where to put the target file.

For example:

 
  DESTDIR = ../../lib

DLLDESTDIR
Specifies where to copy the target dll.

HEADERS
Defines the header files for the project.

qmake will generate dependency information (unless -nodepend is specified on the command line) for the specified headers. qmake will also automatically detect if moc is required by the classes in these headers, and add the appropriate dependencies and files to the project for generating and linking the moc files.

For example:

HEADERS = myclass.h \
   login.h \
   mainwindow.h

See also SOURCES.

INCLUDEPATH
This variable specifies the #include directories which should be searched when compiling the project. Use ';' or a space as the directory separator.

For example:

  INCLUDEPATH = c:\msdev\include d:\stl\include

FORMS
This variable specifies the .ui files (see Qt Designer) to be processed through uic before compiling. All dependencies, headers and source files required to build these .ui files will automatically be added to the project.

For example:

FORMS = mydialog.ui \
 mywidget.ui \
        myconfig.ui

 


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

qmake命令参考








签名