0

我有一个 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

有什么想法吗?

4

1 回答 1

4

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

c:\work\someproject

代替

C:\Users\John Doe\work\someproject
于 2011-12-17T19:35:38.587 回答