QtCreator Project settings create debug and release folders
-
I have separate folders for Debug and Release in my Project settings. What is confusing is that in each folder qtCreator creates both "debug" and "release" subfolders(for example Project-debug/debug and Project-debug/release). Depending on the build mode, i.e debug or release, one of these subfolders is filled with obj and output files, leaving another one empty. For example, building in Debug mode creates Debug\debug with output files and Debug\release empty. My pro file does not do anything to create these subfolder.
Why these subfolders even exist in the project build directory?
-
@toran "I have separate folders for Debug and Release in my Project settings" - can you explain a bit what they are used for?
Usually you do not have to care about debug and release folders - they are created for you. Can you show your pro file? -
"can you explain a bit what they are used for": well, sort of. QtCreator creates the default directory for a project. For example, creating console application "creatorFolderTest" in c:\test produces following setting:
for "Debug" build configuration: C:\test\build-creatorFolderTest-Desktop_Qt_5_7_0_MSVC2015_32bit-Debug
for "Release" build configuration: C:\test\build-creatorFolderTest-Desktop_Qt_5_7_0_MSVC2015_32bit-Release
I did not edit .pro file in any way, just ran New Project wizard.
Now, when I build, say, in Debug Mode, it creates "debug" and "release" folders under C:\test\build-creatorFolderTest-Desktop_Qt_5_7_0_MSVC2015_32bit-Debug.
Please note that I did not yet build "Release" mode.The pro file created by QtCreator is:
QT += core
QT -= guiCONFIG += c++11
TARGET = creatorFolderTest
CONFIG += console
CONFIG -= app_bundleTEMPLATE = app
SOURCES += main.cpp
-
Well I dont know the answer yet :)
I also wondered why. :)I feel this time we are lucky and someone will tell us the truth.
It's out there, I can feel it. -
IIRC it has to do because there are different tools involved. For creator it has been decided to allow for shadow builds for all generated information. Those shadow builds are separated for debug and release. However, the file structure internally stems from a stripped down version of qmake used within creator. qmake would generate those folders in the decided location as will the stripped down version in creator.
For some reason the shadow builds have to be already separated and cannot simply use the use the qmake structure.
I believe there has been a post or better an answer to a post by @tobias-hunger explaining that a couple of years back. The introduction of shadow builds goes back to tobias as far as I know. However, I was not able to dig out his answer by the search functionality here in the forum.
Do not nail me to explanation above. Completely out of memory on what I understood at that time.
-
Well good enough explanation for me. Thank you.
I absolutely adore shadow build so it's a small price to pay. :) -
Hi,
Also, IIRC, that's how VS works thus the duplicated unused folders.