从某些位置运行时Qt moc无法正常工作

时间:2011-12-17 18:49:09

标签: qt moc

我有一个Qt项目,我正在尝试使用Windows 7上的jom进行编译。当源位于一个位置时,我可以从命令行编译它。但是,当我从另一个位置的git中提取源并尝试编译它时,我收到以下错误

moc:指定的输入文件太多

这真的很奇怪,因为在这两种情况下,我只是从同一个git存储库中提取并且代码在一个位置编译良好而在另一个位置编译失败。我尝试了nmake并得到了相同的结果。

作为比较,这是两个命令。第一个失败,第二个失败。

C:\QtSDK\Desktop\Qt\4.7.4\msvc2008\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DSRCDIR=\"C:/Users/Jon Morra/.hudson/jobs/Organizer/workspace/MVSComplete/SshTests/\" -DQT_DLL -DQT_NO_DEBUG -DQT_TESTLIB_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtCore" -I"c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtNetwork" -I"c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtTest" -I"c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\include" -I"..\..\MVSComplete\QtSftpWrapper" -I"c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\ActiveQt" -I"release" -I"..\..\MVSComplete\SshTests" -I"." -I"c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\mkspecs\win32-msvc2008" -D_MSC_VER=1500 -DWIN32 ..\..\MVSComplete\SshTests\tst_sshteststest.cpp -o release\tst_sshteststest.moc
C:\QtSDK\Desktop\Qt\4.7.4\msvc2008\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DSRCDIR=\"C:/MVS/MVSOrganizerQt/MVSComplete/SshTests/\" -DQT_DLL -DQT_NO_DEBUG -DQT_TESTLIB_LIB -DQT_NETWORK_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.7.4\msvc2008\include\QtCore" -I"..\..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtNetwork" -I"..\..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtTest" -I"..\..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include" -I"..\..\MVSComplete\QtSftpWrapper" -I"..\..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\ActiveQt" -I"release" -I"..\..\MVSComplete\SshTests" -I"." -I"..\..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\mkspecs\win32-msvc2008" -D_MSC_VER=1500 -DWIN32 ..\..\MVSComplete\SshTests\tst_sshteststest.cpp -o release\tst_sshteststest.moc

任何想法发生了什么?

1 个答案:

答案 0 :(得分:4)

我怀疑这是因为你的第一条路径包含一个空格:“C:/ Users / Jon Morra / ......” QMake不能很好地处理路径中的空格,即它不会一直正确地逃避它们,因此带有空格的路径被解释为两个参数而不是某个点。我建议在建立地震时始终使用没有空格的路径作为源目录。例如。将您的资源放入

c:\work\someproject

而不是

C:\Users\John Doe\work\someproject