无法自定义 Qt 的构建目录 Creator/qmake

Unable to customise the build directory for Qt Creator/qmake

我在尝试指定构建目录(在将所有文件复制到 DESTDIR 路径之前存储所有文件的目录)时遇到问题。

我的 .pro 文件中有以下值:

DESTDIR  = E:/Development/project/build/core/debug
OUT_PWD  = E:/Development/project/build/core/debug
OBJECTS_DIR = $$DESTDIR/.obj
MOC_DIR = $$DESTDIR/.moc
RCC_DIR = $$DESTDIR/.qrc
UI_DIR = $$DESTDIR/.ui

现在,所有文件最终都位于该位置,但是在构建期间,编译器始终使用 "E:/Development/build/MinGW_32bit-Debug/src/core" 文件夹(请注意缺少的项目路径)。这很烦人,因为我想使用 /Project/build 目录作为这个位置(我的 git 存储库中没有跟踪它)。

理想情况下,我希望此路径为:E:\Development\project\build\src\core\debug

我想这样做的原因是构建过程具有相同的位置来包含来自(它是一个子目录项目)的编译库。

我查看了 Tools > Options > Build & Run > General 设置,默认构建目录是:build/build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}

我查看了我的 project.pro.user 文件,发现了以下行:

<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Development/build/MinGW_32bit-Debug</value>

但是我无法更改此值。如果我直接在文件中编辑这一行,一旦我再次打开 Qt Creator,更改就会恢复。

这是 Qt Creator 的东西,还是 qmake 的东西?我会更好地使用不同的构建系统,例如 CMake 吗?

构建目录为"specified",在构建目录中启动qmakecmake。在 .pro 文件本身中设置它是没有意义的。

Qt Creator 将项目的构建目录存储在 .user 文件中。当项目在 Creator 中打开时,在 Qt Creator 之外对该文件所做的任何更改都将丢失。 Creator 在打开项目时加载文件,如果不存在则创建一个新文件。

当 Creator 通过调用 qmakecmake 开始构建时,它会在构建目录中启动该进程。这也是您应该如何从命令行手动构建项目。

最后,重写中间构建结果的目标毫无意义。它们位于构建目录中的某个位置,这才是最重要的。无论如何,您不会直接将这些文件用于任何事情。

构建qmake工程的习惯方式:

mkdir project-build
cd project-build
qmake ~/project-src
make -j

构建文件夹不应在源代码树中!

我最近开始将它们保留在 $TEMP / %TEMP% 中:手动清除所有类型的测试项目的陈旧构建在一段时间后变旧了:)