我正在尝试从源代码编译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>
答案 0 :(得分:5)
花了一段时间,但我已经解决了这个问题。文件QtScriptShell_QWebPluginFactory.cpp包含几行判断空数组:
static const QWebPluginFactory::Extension qtscript_QWebPluginFactory_Extension_values[] = {};
static const char * const qtscript_QWebPluginFactory_Extension_keys[] = {};
虽然C99可以接受,但Visual Studio C ++编译器不接受空数组。所以我只是添加了一个非零大小,错误就消失了。
static const QWebPluginFactory::Extension qtscript_QWebPluginFactory_Extension_values[1];
static const char * const qtscript_QWebPluginFactory_Extension_keys[1];