Qt 在指定输出目录后它仍然在本地目录中创建调试和发布文件夹

Qt after specifying output directory it still create debug and release folders in local directory

我使用宏在 .pro 文件中指定输出目录,效果很好。但是我的本地目录仍然创建了调试和发布文件夹。我怎样才能停止创建这 2 个空文件夹?

编辑:这是我的 Windows 7。我使用 qt 5.5 creator 3.6.0。 Windows 10 上的相同设置表现不同。在 Windows 10 它输出到与 bin 相同级别的文件夹,称为 build-configuration-details。

debug {
    DESTDIR = ../../bin/debug
    MOC_DIR = ../../build/lib/debug
    OBJECTS_DIR = ../../build/lib/debug
}
release {
    DESTDIR = ../../bin/release
    MOC_DIR = ../../build/lib/release
    OBJECTS_DIR = ../../build/lib/release
}

原始结构

app
  |
  lib
   |
   .pro

编译后

bin
| |
  debug (libs)
| |
  release (libs)
|
build
| |
  debug (objects)
| |
  release (objects)
|
app
  |
  lib
   |
   .pro
   |
   debug (empty)
   |
   release (empty)

为避免在源代码树中创建额外的调试和发布文件夹,您应该在 Qt Creator 中启用 Shadow 构建。

未启用时,Qt Creator 会在源代码树中创建调试和发布文件夹(更准确地说是 qmake 创建它们)。您在 .pro 文件中设置的内容只会告诉 qmake 您想要放置某些特定文件夹的位置。但是 qmake 本身在您的源代码树中 运行 并在那里创建调试和发布文件夹。当您启用影子构建时,qmake 将在您在影子构建路径中设置的文件夹中运行。