2015-11-03 93 views
0

我有一个构建环境,用于在Visual Studio 2008上使用Qt的一堆C++项目。我没有必要重新编译一段时间的代码,但是我的系统上肯定发生了一些变化,因为它不再工作。visual studio 2008 moc can not find mainwindow.h

所有的环境变量仍然是正确的,据我所知,我没有更新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:\QtSDK\Desktop\Qt\4.8.1\msvc2008\bin\moc.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"..\..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtCore" -I"..\..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtGui" -I"..\..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2008\include" -I"..\..\LSL\liblsl\bin" -I"..\..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\ActiveQt" -I"debug" -I"." -I..\..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2008\mkspecs\default -D_MSC_VER=1500 -DWIN32 mainwindow.h -o debug\moc_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 Creator中打开)。什么也奇怪的是,生成日志仍然是拍摄一个错误约商务部:

C:\QtSDK\Desktop\Qt\4.8.1\msvc2008\bin\moc.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"..\..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtCore" -I"..\..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\QtGui" -I"..\..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2008\include" -I"..\..\LSL\liblsl\bin" -I"..\..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2008\include\ActiveQt" -I"debug" -I"." -I..\..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2008\mkspecs\default -D_MSC_VER=1500 -DWIN32 mainwindow.h -o debug\moc_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 
+0

你有没有试过再次在你的项目上运行qmake? –

+0

是的,其实它确实有效果,但没有喜悦。我仍然有问题。我会修改这个问题。 – dmedine

回答

0

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

+0

在我的vcproj文件,我有这行:'\t \t \t <文件 \t \t \t \t RelativePath = “mainwindow.h” \t \t \t \t>' – dmedine

+0

我尝试添加回声线,以我的生成命令,仍然一无所获。我想我可能在安装Qt的不同版本以及英特尔编译器的过程中弄糟了一些东西。我将尝试擦除所有这些东西并重新安装它。我严重怀疑项目本身存在问题,因为我可以使用相同的工具在不同的机器上构建它。这让我觉得在这里VS 2008的本地安装存在问题。另外,我看到有人报告称重新安装是解决类似问题的方法。 – dmedine

+0

新安装什么也没做 – dmedine

0

删除并重新导入mainwindow.h的窍门。现在编译器找不到mainwindow.ui文件(这是需要的)。

+0

另外,我找出了问题的根源。这一切都与我为别名的一些shell命令的文件有冲突 - 特别是调用不同版本的python,我把这个帖子中的答案:http://stackoverflow.com/questions/33534162/visual-studio -2008-着 - 查找 - 指定路径 - – dmedine