I have a Qt project that uses qmake. To improve clarity and readability, I'd like to keep the
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:
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With