官方的说明...暂时没看明白...慢慢研究了
recursive
Indicates that rules should be created in the Makefile and thus call the relevant target inside the sub-target specific Makefile. This defaults to creating an entry for each of the sub-targets.
For convenience, there is also a method of customizing projects for new compilers or preprocessors:
new_moc.output = moc_${QMAKE_FILE_BASE}.cpp
new_moc.commands = moc ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
new_moc.depend_command = g++ -E -M ${QMAKE_FILE_NAME} | sed "s,^.*: ,,"
new_moc.input = NEW_HEADERS
QMAKE_EXTRA_COMPILERS += new_moc
With the above definitions, you can use a drop-in replacement for moc if one is available. The commands is executed on all arguments given to the NEW_HEADERS variable (from the input member), and the result is written to the file defined by the output member; this file is added to the other source files in the project. Additionally, qmake will execute depend_command to generate dependency information, and place this information in the project as well.
These commands can easily be placed into a cache file, allowing subsequent project files to add arguments to NEW_HEADERS.
The following tables are an overview of the options available to you with the QMAKE_EXTRA_COMPILERS variable.