如何在Windows 7上使用mingw32“make”

时间:2013-09-16 22:02:02

标签: c makefile mingw32

我对C和编程都很陌生,所以我希望你们有一点耐心。 但是我试着尽可能准确地描述我的问题。 我在Windows 7计算机上使用mingw32,我刚学会了'make'。 我写了一些源代码文件和一个Makefile。我想要的是Makefile 编译我的源代码int目标代码,然后将它们链接到一个可执行文件 (我猜这对于职业选手来说没什么了不起的。)

所以这是我的代码:

first.c:

#include<stdio.h>
#include"second.h"
int main()
{
float x = 12.0;
printf("Result is: %.2f\n",go_to_the_other(x));
return 0;
}

second.h

float go_to_the_other(float f);

second.c

float go_to_the_other(float f)
{
float calc = f + 10;
return calc;
}

Makefile是(是的,我只使用了标签符号):

second.o: second.c second.h
        gcc   -c   second.c
first.o:    first.c
        gcc   -c   first.c
first:   first.o  second.o
        gcc first.o second.o  -o first

这只是一个简单的例子,但它几乎描述了我的问题。 我将所有文件放在同一目录中,并使用命令行:

mingw32-make first

但是我没有编译我的文件,只收到了消息:

cc  first.c -o first
process_begin: CreateProcess(NULL, cc first.c -o first, ...) failed
make (e=2): The system cannot find the file specified.
<builtin>: recipe for target 'first' failed
mingw32-make: ***[first] Error 2

我想这可能是非常愚蠢的事情,但我无法弄明白 我做错了什么。我真的很感激任何帮助。 非常感谢你。

1 个答案:

答案 0 :(得分:1)

所以我去尝试了...并且它在Win7机器上使用MinGW-4.7.1对我有效....我想知道是否让它获取环境变量或其他一些。

尝试验证make和gcc的版本是否符合预期

mingw32-make -v gcc -v mingw32-gcc -v

同样试试这个makefile,看看会发生什么。

CC = mingw32-gcc

second.o: second.c second.h
    $(CC)   -c   second.c
first.o:    first.c
    $(CC)   -c   first.c
first:   first.o  second.o
    $(CC) first.o second.o  -o first

注意将空格转换为标签!

通过

编译

mingw32-make SHELL = cmd.exe first

看看会发生什么。