我为使用Qt的Visual Studio 2008上的一堆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:\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创建者中打开)。同样奇怪的是,构建日志仍然会出现关于moc的错误:
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 :(得分:0)
运行moc时,当前目录的文件相对路径不正确。您可以通过将echo %cd%
添加到运行moc的自定义生成步骤来识别实际目录。
答案 1 :(得分:0)
删除并重新导入mainwindow.h就可以了。现在,编译器无法找到mainwindow.ui文件(需要它)。