在Qt Creator

时间:2017-08-27 18:12:00

标签: c++ qt qt-creator compiler-warnings suppress-warnings

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

enter image description here

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

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

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

如何禁用此警告?

1 个答案:

答案 0 :(得分:2)

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

此警告确实显示源和构建目录的绝对路径名中是否包含相同的数字 /(或Windows上的\)。

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

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

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

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

屏幕截图:image

我使用此目录:../Build/Windows/%{CurrentBuild:Name}我并不关心警告!

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