在 Qt Creator 中禁用“构建目录需要与源目录处于同一级别”警告

Don*_*uck 6 c++ qt compiler-warnings suppress-warnings qt-creator

我在文件夹中有一个 Qt 项目/Users/donaldduck/OneDrive/Documents/myproject,我希望将构建目录作为源目录的子文件夹,位于/Users/donaldduck/OneDrive/Documents/myproject/build-myproject. 问题是 Qt Creator 给了我一个警告说“构建目录需要与源目录处于同一级别”:

在此处输入图片说明

除了这个警告,项目编译得很好。我什至没有遇到任何问题,即构建目录是源目录的子文件夹。我在网上搜索,看看为什么会收到这个警告,我发现这可能是因为构建目录与源目录不在同一级别可能会导致相对路径出现问题。但是我的程序中没有任何相对路径,我在 QRC 资源中拥有所有文件。

所以这个错误很烦人,我想禁用它。我在网上搜索了解决方案,但没有找到任何东西。

此外,我只在 Windows 计算机和 Mac 虚拟机上收到此警告。我的 Linux 虚拟机上有一个类似的文件夹结构(构建目录是源目录的子文件夹),但它们都没有给出任何警告。另外,在我在 Windows 上更新 Qt 之前,我没有收到该警告,但是自从我更新它之后,我也在 Windows 上收到了这个警告。

如何禁用此警告?

Far*_*had 8

禁用不可能,但解决方案是更改构建目录。

如果源目录和构建目录在其绝对路径名中不包含相同数量/(或\在 Windows 上),则此警告会显示。

假设您的源目录是“c:\dev\source\project”,那么“..\build-directory”就可以,但例如“..\build\directory”就不是。"c:\dev\build\project\debug" 不行,但 "c:\dev\build\project-debug" 不行。"./debug" 和 "debug" 也不能作为构建目录。

你也能观察到吗?还是所有以“..\”开头的路径都会触发此警告?

在一些罕见的极端情况下,Qmake 将无法构建不遵循“与根的距离相同”规则的项目,并且在这样做时会产生非常神秘的输出。所以我们需要警告这样的设置。

您可以像这样使用默认目录: ../%{CurrentBuild:Name}

截屏: 图片

我使用这个目录:../Build/Windows/%{CurrentBuild:Name}我不在乎警告!

参考:https : //bugreports.qt.io/browse/QTCREATORBUG-16616