2014-05-23 23 views
6

Próbuję skompilować program QCAD (aplikacja CAD typu open source, która opiera się na Qt) ze źródła, dzięki czemu mogę go zbudować dla msvs2008. Postępuję zgodnie z instrukcjami podanymi tutaj: http://www.qcad.org/en/component/content/article/78-qcad/111-qcad-compilation-from-sources.NMAKE: błąd krytyczny U1077: "cd": kod powrotu "0x2" cl.exe

Udało mi się pomyślnie skonfigurować i skompilować Qt 4.8.5 i ustawić zmienną środowiskową PATH. Stworzyłem nową zmienną środowiskową QMAKESPEC i ustawiłem wartość na win-32-msvc2008. Ukończyłem konfigurację QCAD bez żadnych problemów. Jednak około 30 minut do kompilacji natknąłem się na następujący błąd: NMAKE: błąd krytyczny U1077: "cd": kod powrotu "0x2". Widziałem podobne błędy zgłoszone do kompilacji Qt, jednak nie miałem z tym problemu. Czy jest ktoś, kto ma pojęcie, co może być nie tak? Z góry dziękuję.

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

Prawdopodobnie powodują to miejsca w nazwach ścieżek. http://stackoverflow.com/questions/14861718/fatal-error-when-compiling-qt-in-windows – PaulMcKenzie

Odpowiedz

5

Zajęło mi trochę czasu, ale rozwiązałem problem. Plik QtScriptShell_QWebPluginFactory.cpp zawierał kilka linii decalring pustych tablic:

static const QWebPluginFactory::Extension qtscript_QWebPluginFactory_Extension_values[] = {}; 
static const char * const qtscript_QWebPluginFactory_Extension_keys[] = {}; 

Choć jest to akceptowalne dla C99, Visual Studio C++ kompilator nie będzie akceptować pustych tablic. Więc po prostu dodałem niezerowy rozmiar i błąd zniknął.

static const QWebPluginFactory::Extension qtscript_QWebPluginFactory_Extension_values[1]; 
static const char * const qtscript_QWebPluginFactory_Extension_keys[1];