2012-05-04 15 views
5

Estoy trabajando en Qt 4.7.2 en Windows. He generado Makefile, Makefile.Debug y Makefile.Release. Sin embargo, cuando intento utilizar mingw32-hacer para construir un ejecutable, me sale el siguiente error:Error de separador perdido en Makefile

mingw32-make -f Makefile.Debug all 
mingw32-make[1]: Entering directory `C:/Qt/4.7.2/src/plugins/sqldrivers/mysql' 
Makefile.Debug:61: *** missing separator. Stop. 
mingw32-make[1]: Leaving directory `C:/Qt/4.7.2/src/plugins/sqldrivers/mysql' 
mingw32-make: *** [debug-all] Error 2 
+1

¿está mezclando nmake/msvc makefiles con mingw? –

+0

¿Qué tan difícil es mostrarnos la línea 61 de Makefile.Debug (y las líneas cercanas)? – Jens

+0

En la línea 61, solo hay "<<". Puse una pestaña antes, y ahora da otro error. Lo pregunté a continuación. – gizemdemirel

Respuesta

8

"Missing separador" casi siempre significa que tiene una línea que debe comenzar con una pestaña que en lugar comienza con una espacio.

0

Si realmente nos hubiera mostrado lo que estaba en la línea 61 del archivo Makefile.debug, podríamos darle una mejor respuesta. "Falta el separador" es la versión de "error de sintaxis" de make. Básicamente, significa hacer que la sierra sea una línea en el archivo MAKE que no pudo descifrar.

Una razón podría ser, como lo menciona William Pursell, que tiene espacios para presentar sus líneas de recetas, pero hay muchas otras razones. Tal vez olvidaste el ":" entre el objetivo y el requisito previo, o el "=" en una asignación de variable. Hay otras posibilidades

1

Tengo "< <" en la línea 61 del archivo Makefile.Debug. Como sugirió William Pursell, puse la pestaña antes de "< <". Me resuelto el problema de la línea 61, pero ahora tengo otro problema:

mingw32-make[1]: *** [tmp\obj\debug_shared\qsqlmysqld_resource.res] Error 2 
mingw32-make[1]: Leaving directory `C:/Qt/4.7.2/src/plugins/sqldrivers/mysql' 
mingw32-make: *** [debug-all] Error 2 
12

Obviamente esta respuesta es tarde, pero estoy respondiendo para la posteridad ... esto me golpeó en la actualidad.

Frank Osterfeld casi con certeza tenía razón. No estoy seguro de cómo generó los makefiles, pero probablemente sean nmake makefiles, no mingw makefiles. Puedes verlo mirando la parte superior de Makefile.Debug. Si ve "CXX = cl", no "CXX = g ++", ese es su problema.

En mi caso, aparece este error al intentar compilar el Qt SDK mismo. Para resumir: necesitaba especificar "-platform win32-g ++" en la línea de comandos de configuración (de manera predeterminada, win32-msvc).

+0

Debe especificar "-platform ", donde es una cadena que contiene "win32-g ++". Eso significa que "win64-g ++" no funcionará pero "win32-g ++ - 4.6" lo hará. Vea la línea 1380 de \ Qt \ 4.8.5 \ tools \ configure \ configureapp.cpp. – JPaget

+2

Lo resolví con 'set QMAKESPEC = C: \ Qt \ 4.8.5 \ mkspecs \ win32-g ++' – JuanPablo