2014-05-23 76 views
6

Sto provando a compilare QCAD (un'applicazione CAD open source che si basa su Qt) dalla sorgente in modo da poterlo creare per msvs2008. Ho seguito le istruzioni fornite qui: http://www.qcad.org/en/component/content/article/78-qcad/111-qcad-compilation-from-sources.NMAKE: errore irreversibile U1077: 'cd': codice restituito '0x2' cl.exe

Sono riuscito a configurare e compilare correttamente Qt 4.8.5 e ho impostato la variabile di ambiente PATH. Ho creato una nuova variabile di ambiente QMAKESPEC e impostato il valore per win-32-msvc2008. Ho completato la configurazione di QCAD senza problemi. Tuttavia, circa 30 minuti nella compilazione ho riscontrato il seguente errore: NMAKE: errore fatale U1077: 'cd': codice di ritorno '0x2'. Ho visto errori simili segnalati per la compilazione di Qt, tuttavia non ho avuto problemi lì. C'è qualcuno che ha qualche idea di cosa potrebbe essere sbagliato? Grazie in anticipo.

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

Probabilmente gli spazi nei nomi dei percorsi causano questo. http://stackoverflow.com/questions/14861718/fatal-error-when-compiling-qt-in-windows – PaulMcKenzie

risposta

5

Ci è voluto un po ', ma ho risolto il problema. Il file QtScriptShell_QWebPluginFactory.cpp conteneva un paio di righe vuote decalring array:

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

Anche se questo è accettabile per C99, Visual Studio compilatore C++ non accetterà gli array vuoti. Quindi ho semplicemente aggiunto una dimensione diversa da zero e l'errore è scomparso.

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