2013-11-21 28 views
0

当我尝试做Cygwin编译使用MakefileKeys.c程序在Windows 7 64位Makefile的行为

应该编译如下

gcc -g -Wall -ansi -c keys.c 

,但我得到以下

`cc  keys.c -o keys` not `gcc -g -Wall -ansi -c keys.c` 

make文件如下

CC = gcc 
CFLAGS = -g -Wall -ansi 

keys: keys.c 
    $(CC) $(CFLAGS) -c keys.c 
+0

是你的文件'keys.c'还是'Keys.c'?我不知道cygwin(或cygwin中的make)是否不区分大小写。 –

+0

请注意,您的编译行是错误的:您正在尝试构建可执行文件,因此您不应该使用'-c'。 '-c'标志告诉编译器编译成目标文件,但不链接。 – MadScientist

回答

1

keys.c之前删除-c什么在这里发生的是,当你给

$(CC) $(CFLAGS) -c keys.c

那么只有目标文件keys.o创建。由于没有编写制定最终目标的规则,因此makefile将使用隐式规则来创建目标。

CC = gcc 
CFLAGS = -g -Wall -ansi 

keys: keys.c 
    $(CC) $(CFLAGS) keys.c 
+0

谢谢,但我不工作 – user2999200

+0

好吧我知道了。检查更新的makefile –