2012-05-04 8 views
5

Ich arbeite an Qt 4.7.2 unter Windows. Ich habe Makefile, Makefile.Debug und Makefile.Release generiert. Allerdings, wenn ich versuche zu verwenden mingw32-macht eine ausführbare Datei zu erstellen, erhalte ich folgende Fehlermeldung:Fehlender Separatorfehler im 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

mischen Sie nmake/msvc makefiles mit mingw? –

+0

Wie schwer ist es, uns die Linie 61 von Makefile.Debug (und die Linien in der Nähe) zu zeigen? – Jens

+0

An der Linie 61 gibt es nur "<<". Ich lege einen Tab davor und jetzt gibt es einen weiteren Fehler. Ich habe es unten gefragt. – gizemdemirel

Antwort

8

„Missing Separator“ fast immer bedeutet, dass Sie eine Linie haben, die mit einem Tab beginnen sollten, die statt mit einem beginnt Raum.

0

Wenn Sie uns tatsächlich gezeigt hätten, was in Zeile 61 der Datei Makefile.debug war, könnten wir Ihnen eine bessere Antwort geben. "Missing separator" ist make's Version von "syntax error". Es bedeutet im Grunde genommen, dass man im Makefile eine Zeile sah, die es nicht herausfinden konnte.

Ein Grund könnte sein, wie William Pursell erwähnt, dass Sie Räume haben, die Ihre Rezeptlinien vorstellen, aber es gibt viele andere Gründe. Vielleicht haben Sie das ":" zwischen dem Ziel und der Voraussetzung oder das "=" in einer Variablenzuweisung vergessen. Es gibt andere Möglichkeiten.

1

Ich habe "< <" an der Zeile 61 der Makefile.Debug-Datei. Wie William Pursell vorgeschlagen hat, lege ich einen Tab vor "< <". Ich löste die Linie 61 Problem, aber jetzt habe ich ein anderes Problem:

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

Offensichtlich ist diese Antwort zu spät ist, aber ich bin der Beantwortung es für die Nachwelt ... das hat mich heute.

Frank Osterfeld hatte fast sicher Recht. Ich bin mir nicht sicher, wie Sie die Makefiles generiert haben, aber es sind wahrscheinlich nmake Makefiles, keine Makefiles. Sie können dies an der Spitze von Makefile.Debug erkennen. Wenn Sie "CXX = cl" und nicht "CXX = g ++" sehen, dann ist das Ihr Problem.

In meinem Fall, traf ich diesen Fehler beim Versuch, das Qt SDK selbst zu kompilieren. Lange Rede, kurzer Sinn: Ich musste "-platform win32-g ++" in der configure-Befehlszeile angeben (standardmäßig auf win32-msvc).

+0

Sie müssen "-platform " angeben, wobei eine beliebige Zeichenfolge ist, die "win32-g ++" enthält. Das bedeutet "win64-g ++" wird nicht funktionieren, aber "win32-g ++ - 4.6" wird. Siehe Zeile 1380 von \ Qt \ 4.8.5 \ tools \ configure \ configureapp.cpp. – JPaget

+2

Ich löste mit 'setzen QMAKESPEC = C: \ Qt \ 4.8.5 \ mkspecs \ win32-g ++' – JuanPablo