NMAKE:致命错误U1077:'cd':返回代码'0x2'cl.exe

Jay*_*ays 7 c++ qt4 visual-studio-2008

我正在尝试从源代码编译QCAD(一个依赖于Qt的开源CAD应用程序),因此我可以为msvs2008构建它.我一直在遵循这里给出的指示:http://www.qcad.org/en/component/content/article/78-qcad/111-qcad-compilation-from-sources.

我成功配置并编译了Qt 4.8.5并设置了我的环境变量PATH.我创建了一个新的环境变量QMAKESPEC并将值设置为win-32-msvc2008.我没有任何问题地完成了QCAD的配置.但是,在编译大约30分钟后,我遇到了以下错误:NMAKE:致命错误U1077:'cd':返回代码'0x2'.我已经看到了Qt汇编报告的类似错误,但是,我没有遇到任何问题.有谁知道什么可能是错的?提前致谢.

Generating Code...
c:\qcad\src\3rdparty\qt-labs-qtscriptgenerator-4.8.5\generated_cpp\com_trolltech_qt_webkit\qtscriptshell_qwebpluginfactory.cpp(58) 
: warning C4715: 'QtScriptShell_QWebPluginFactory::create' : not all control paths return a value
c:\qcad\src\3rdparty\qt-labs-qtscriptgenerator-4.8.5\generated_cpp\com_trolltech_qt_webkit\qtscriptshell_qwebpluginfactory.cpp(128)
: warning C4715: 'QtScriptShell_QWebPluginFactory::plugins' : not all control paths return a value
c:\qcad\src\3rdparty\qt-labs-qtscriptgenerator-4.8.5\generated_cpp\com_trolltech_qt_webkit\qtscriptshell_qwebhistoryinterface.cpp(105) 
: warning C4715: 'QtScriptShell_QWebHistoryInterface::historyContains' : not all control paths return a value
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

C:\qcad>
Run Code Online (Sandbox Code Playgroud)

Jay*_*ays 5

花了一段时间,但我已经解决了这个问题.文件QtScriptShell_QWebPluginFactory.cpp包含几行decalring空数组:

static const QWebPluginFactory::Extension qtscript_QWebPluginFactory_Extension_values[] = {};
static const char * const qtscript_QWebPluginFactory_Extension_keys[] = {};
Run Code Online (Sandbox Code Playgroud)

虽然这对C99来说是可以接受的,但Visual Studio C++编译器不接受空数组.所以我只是添加了一个非零大小,错误就消失了.

static const QWebPluginFactory::Extension qtscript_QWebPluginFactory_Extension_values[1];
static const char * const qtscript_QWebPluginFactory_Extension_keys[1];
Run Code Online (Sandbox Code Playgroud)