qt构建输出目录被完全忽略

时间:2013-11-17 12:34:12

标签: c++ qt

我最近一直在使用qt,正在组织一些项目进入Subdirs开始一个更大的项目,然后去操纵专业文件,以便将我的构建文件放在我想要的地方。但是,我对其中任何一个所做的更改都会被忽略。我有一个编译成可执行文件的主项目,然后是另外两个编译成DLL的项目。我希望可执行文件和库最终位于子文件pro文件所在的同一目录中。这是我试过的子目录的专业文件:

TEMPLATE = subdirs

SUBDIRS += \
    MainWindow \
    FileLoader

Debug:DESTDIR = $$_PRO_FILE_/debug
Debug:OBJECTS_DIR = $${DESTDIR}/.obj
Debug:MOC_DIR = $${DESTDIR}/.moc
Debug:RCC_DIR = $${DESTDIR}/.rcc
Debug:UI_DIR = $${DESTDIR}/.ui

Release:DESTDIR = $$_PRO_FILE_/release
Release:OBJECTS_DIR = $${DESTDIR}/.obj
Release:MOC_DIR = $${DESTDIR}/.moc
Release:RCC_DIR = $${DESTDIR}/.rcc
Release:UI_DIR = $${DESTDIR}/.ui

之后,我在所有三个子项目专业文件中放置了相同的路径块,仍然所有构建文件最终都在我的Qt Projects目录中名为“build-Chromatic-Desktop_Qt_5_1_1_MSVC2010_32bit-Debug”的目录中(Chromatic is项目的名称)。有人可以帮我纠缠我的专业文件做我想要的东西吗?同样,我想要在子目录文件所在的目录中的所有项目的所有构建文件。

1 个答案:

答案 0 :(得分:2)

  1. 您应该使用_PRO_FILE_而不是_PRO_FILE_PWD_,因为第一个变量包含正在使用的项目文件的路径,第二个变量包含包含正在使用的项目文件的目录的路径。
  2. 在Qt Creator中你应该deselect the Shadow build checkbox:“默认情况下,Qt Creator在源目录的单独目录中构建项目,作为影子构建。这使得为每个构建和运行工具包生成的文件保持独立如果您只使用单个工具包构建和运行,则可以取消选择Shadow build复选框。