在Qt中使用MSVC编译器构建项目的时候,出现了这个问题。这个问题出现的很奇怪。我Qt的安装目录是在D盘,我在D盘新建一个项目用(qMake +MSVC编译器),提示找不到QMainWindow.h.但是我在E盘新建项目同样是(qMake +MSVC编译器)就可以运行。有的时候项目可以运行了,但是qMake一下,就又报错了。虽然找不到原因,但是这里能提供几种解决办法。
1、在.pro项目文件中 添加 qmake_project_depth = 0 ; 这句代码。 这个方法确实会能解决编译不成功的问题,但是在我Qt6.8的版本中会导致,很多源文件标红,找不到定义。但是可以编译通过运行的。
2、关闭Shadow build。影子构建是把生成的构建文件跟源文件分开,这样项目目录里面看起来就干净清爽一点。关闭以后,会导致源文件目录比较杂乱。
3、改变shadow build 的路径。你只要保证你.pro 文件的所在目录的深度,不会超过构建目录的深度就可以。比如我的项目在: D:\project\project1\project2\project.pro. 这里深度是4,那么我把构建目录放在D:\Desktop_Qt_6_8_3_MSVC2022_64bit-Debug, D:\dir1\Desktop_Qt_6_8_3_MSVC2022_64bit-Debug,
D:\dir1\dir2\Desktop_Qt_6_8_3_MSVC2022_64bit-Debug,
D:\dir1\dir2\dir3\Desktop_Qt_6_8_3_MSVC2022_64bit-Debug, 都可以。
4、把 Qt首选项-构建与运行-概要-下面的使用jom代替nmake 这个勾选掉。