为什么这个 makefile 不使用 MinGW 创建可执行文件?

Why is this makefile not creating an executable with MinGW?

我正在 windows 上试用 MinGW。我已经能够使用 GCC 从 C 源文件创建可执行文件。

main.c是这样的:

#include <stdio.h>

int main()
{
    int this_is_a_number;

    printf("Please enter a number: ");
    scanf("%d", &this_is_a_number);
    printf("You entered: %d", this_is_a_number);
    getchar();
    return 0;
}

makefile 有这个:

cProj: main.c
    gcc -o cProj main.c

当我从 powershell 运行 make 时,我得到这个:

PS C:\Projects\cProj> make
Target 'cProj' is up to date
PS C:\Projects\cProj>

但是我运行make之后目录下没有可执行文件

PS C:\Projects\cProj> ls


    Directory: C:\Projects\cProj


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---          4/7/2015  10:33 PM        207 main.c
-a---          5/2/2015   8:35 PM         35 makefile

如您所见,makefile 没有任何错误。至少不是我能看到的。 gcc 编译器确实处理传递给它的参数。当我 运行 gcc -o cProj main.c 时,它创建了一个没有问题的可执行文件。

我知道我的 makefile 非常明确,对于实际项目来说不是一个好的 makefile。我只是想让 make 在我的 windows 机器上工作。

我做错了什么?

我的 make 版本(来自 MinGW)是 Digital Mars Make 5.06 版。

GCC 是 4.8.1 版。

感谢您的帮助。

看来问题是我使用了错误的品牌。

当我执行 MinGW 实际附带的 make 程序时,整个过程都有效。

c:\Projects\cProj> mingw32-make.exe

有效。

要使 Digital Mars Make 正常工作,只需在您的 makefile 中附加一个终止行。