visualstudio2008moc找不到主窗口

visual studio 2008 moc cant find mainwindow.h

本文关键字:窗口 找不到 visualstudio2008moc      更新时间:2023-10-16

我在Visual Studio 2008上为一组使用Qt的C++项目设置了一个构建环境。我已经有一段时间不用重新编译代码了,但我的系统肯定发生了一些变化,因为它已经不工作了。

据我所知,所有的环境变量仍然是正确的,而且我还没有更新Visual Studio或Qt。

我得到的错误是:

1>MOC mainwindow.h
1>The system cannot find the path specified.
1>moc: mainwindow.h: No such file
1>Project : error PRJ0019: A tool returned an error code from "MOC mainwindow.h"

根据我的构建日志,违规行是:

C:QtSDKDesktopQt4.8.1msvc2008binmoc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"........QtSDKDesktopQt4.8.1msvc2008includeQtCore" -I"........QtSDKDesktopQt4.8.1msvc2008includeQtGui" -I"........QtSDKDesktopQt4.8.1msvc2008include" -I"....LSLliblslbin" -I"........QtSDKDesktopQt4.8.1msvc2008includeActiveQt" -I"debug" -I"." -I........QtSDKDesktopQt4.8.1msvc2008mkspecsdefault -D_MSC_VER=1500 -DWIN32 mainwindow.h -o debugmoc_mainwindow.cpp

(抱歉这么久)。这表明moc.exe正在被调用,但它找不到mainwindow.h(它在项目的目录中,肯定是一个包含的目录)。

我重新运行了qmake qmake -project(感谢J-Mik!),但现在它挂在uic 上了

1>UIC mainwindow.ui
1>The system cannot find the path specified.
1>File 'mainwindow.ui' is not valid
1>Project : error PRJ0019: A tool returned an error code from "UIC mainwindow.ui"

该文件当然是有效的(它在Qt创建者中打开)。同样奇怪的是,构建日志仍然在拍摄关于moc:的错误

C:QtSDKDesktopQt4.8.1msvc2008binmoc.exe  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"........QtSDKDesktopQt4.8.1msvc2008includeQtCore" -I"........QtSDKDesktopQt4.8.1msvc2008includeQtGui" -I"........QtSDKDesktopQt4.8.1msvc2008include" -I"....LSLliblslbin" -I"........QtSDKDesktopQt4.8.1msvc2008includeActiveQt" -I"debug" -I"." -I........QtSDKDesktopQt4.8.1msvc2008mkspecsdefault -D_MSC_VER=1500 -DWIN32 mainwindow.h -o debugmoc_mainwindow.cpp

if errorlevel 1 goto VCReportError
goto VCEnd
:VCReportError
echo Project : error PRJ0019: A tool returned an error code from "MOC mainwindow.h"
exit 1
:VCEnd 

moc运行时,文件的相对路径对于当前目录不正确。您可以通过将echo %cd%添加到正在运行moc的自定义构建步骤来识别实际目录。

删除并重新导入mainwindow.h即可。现在编译器找不到主窗口.ui文件(uic需要它)。