How to put generated files (e.g. object files) into a separate folder when using Qt/qmake?
I have a Qt project that uses qmake. To improve clarity and readability, I'd like to keep the
- source files
- buil开发者_开发问答d system
- generated files (such as object files)
separate.
So my first step was putting the source files into a src/ sub directory:
myproject/
myproject.pro
src/
main.cpp
MainWindow.ui
...
That way I separated the source files from the build system (*.pro). However, when I then run qmake
followed by make
, the generated files (object files, etc) are placed into the main project folder:
myproject/
myproject.pro
Makefile
main.o
ui_MainWindow.h
...
src/
main.cpp
MainWindow.ui
...
Well, at least they weren't put into the src/
folder, but how do I specify that they are put into another sub folder such as build/
?
myproject/
myproject.pro
Makefile
build/
main.o
ui_MainWindow.h
...
src/
main.cpp
MainWindow.ui
...
(BTW, I don't care where the target binary myproject
is put, but I guess it should be placed directly into project folder rather than into build/
.)
You can add the following lines to your *.pro
file:
DESTDIR=bin #Target file directory
OBJECTS_DIR=generated_files #Intermediate object files directory
MOC_DIR=generated_files #Intermediate moc files directory
A list of variables is available at the following locations:
- Qt 4.8
- Qt 5
https://wiki.qt.io/Undocumented_QMake#Config_features
object_with_source — outputs each object file into the same directory as its source file (replaced by object_parallel_to_source in the latest versions).
object_parallel_to_source — recreate source folder tree for object files (replaces object_with_source).
in *.pro write
CONFIG += object_parallel_to_source
精彩评论