Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

[Prev: Installing qmake] [Home] [Next: qmake Tutorial]

## The 10 minute guide to using qmake

### Creating a project file

qmake uses information stored in project (.pro) files to determine what should go in the makefiles it generates.

A basic project file contains information about the application, for example, which files are needed to compile the application, and which configuration settings to use.

Here's a simple example project file:

        SOURCES = hello.cpp
        HEADERS = hello.h
        CONFIG += qt warn_on release

We'll provide a brief line-by-line explanation, deferring the detail until later on in the manual.

        SOURCES = hello.cpp

This line specifies the source files that implement the application. In this case there is just one file, hello.cpp. Most applications require multiple files; this situation is dealt with by listing all the files on the same line space separated, like this:

        SOURCES = hello.cpp main.cpp

Alternatively, each file can be listed on a separate line, by escaping the newlines, like this:

        SOURCES = hello.cpp \
    		main.cpp

A more verbose approach is to list each file separately, like this:

        SOURCES += hello.cpp
        SOURCES += main.cpp

This approach uses "+=" rather than "=" which is safer, because it always adds a new file to the existing list rather than replacing the list.

The HEADERS line is used to specify the header files created for use by the application, e.g.

        HEADERS += hello.h

Any of the approaches used to list source files may be used for header files.

The CONFIG line is used to give qmake information about the application's configuration.

        CONFIG += qt warn_on release

The "+=" is used here, because we add our configuration options to any that are already present. This is safer than using "=" which replaces all options with just those specified.

The qt part of the CONFIG line tells qmake that the application is built using Qt. This means that qmake will link against the Qt libraries when linking and add in the neccesary include paths for compiling.

The warn_on part of the CONFIG line tells qmake that it should set the compiler flags so that warnings are output.

The release part of the CONFIG line tells qmake that the application must be built as a release application. During development, programmers may prefer to replace release with debug, which is discussed later.

Project files are plain text (i.e. use an editor like notepad, vim or xemacs) and must be saved with a '.pro' extension. The name of the application's executable will be the same as the project file's name, but with an extension appropriate to the platform. For example, a project file called 'hello.pro' will produce 'hello.exe' on Windows and 'hello' on Unix.

### Generating a makefile

When you have created your project file it is very easy to generate a makefile, all you need to do is go to where you have created your project file and type:

Makefiles are generated from the '.pro' files like this:

        qmake -o Makefile hello.pro

For Visual Studio users, qmake can also generate '.dsp' files, for example:

        qmake -t vcapp -o hello.dsp hello.pro

[Prev: Installing qmake] [Home] [Next: qmake Tutorial]