2012-05-04 101 views
5

我正在使用Qt 4.7.2在Windows上工作。我已经生成了Makefile,Makefile.Debug和Makefile.Release。然而,当我尝试使用的mingw32-make来构建一个可执行文件,我得到以下错误:在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

你在用mingw混合nmake/msvc makefiles吗? –

+0

向我们展示Makefile.Debug的第61行(以及它附近的行)有多难? – Jens

+0

在61行,只有“<<”。我在它之前放了一个标签,现在又出现了另一个错误。我在下面提问。 – gizemdemirel

回答

8

“缺少分隔符”几乎总是意味着你有一个应该是代替了开头的标签开始行空间。

0

如果您确实向我们展示了Makefile.debug文件第61行的内容,我们可以给您一个更好的答案。 “缺少分隔符”是make的“语法错误”版本。它基本上意味着在makefile中看到一行无法找到的行。

正如William Pursell提到的,有一个原因可能是您有空间介绍您的食谱系列,但有很多其他原因。也许你忘记了目标和先决条件之间的“:”,或者变量赋值中的“=”。还有其他的可能性。

1

我在Makefile.Debug文件的第61行有“< <”。正如William Pursell建议的那样,我在“< <”之前加上了标签。我解决了61行的问题,但现在我有一个问题:

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

显然,这个答案是晚了,但我回答它为后人......今天这个打我。

弗兰克奥斯特费尔德几乎肯定是正确的。不知道你是如何生成makefile的,但它们可能是makefile,而不是makefile。您可以通过查看Makefile.Debug的顶部来判断。如果你看到“CXX = cl”,而不是“CXX = g ++”,那就是你的问题。

在我的情况下,我试图编译Qt SDK本身时遇到了这个错误。长话短说:我需要在configure命令行上指定“-platform win32-g ++”(默认为win32-msvc)。

+0

您必须指定“-platform ”,其中是包含“win32-g ++”的任何字符串。这意味着“win64-g ++”将不起作用,但“win32-g ++ - 4.6”将会起作用。请参阅\ Qt \ 4.8.5 \ tools \ configure \ configureapp.cpp的第1380行。 – JPaget

+2

我用'set QMAKESPEC = C:\ Qt \ 4.8.5 \ mkspecs \ win32-g ++'解决了' – JuanPablo