gnu makefile奇怪的问题

时间:2011-08-25 15:20:48

标签: makefile

这是我的makefile:

CC = gcc

CFLAGS = 

all: tm

tm: tm.exe

tm.exe: tm.c
    $(CC) $(CFLAGS) -otm tm.c

我得到了这个结果:

gcc  -otm tm.c
gcc     tm.c tm.exe   -o tm
tm.exe: file not recognized: File truncated
collect2: ld returned 1 exit status
make: *** [tm] Error 1

为什么“gcc tm.c tm.exe -o tm”中出现“tm.exe”????

如果我将makefile改成这个:

CC = gcc

CFLAGS = 

all: tm.exe

tm.exe: tm.c
    $(CC) $(CFLAGS) -otm tm.c

效果很好......

先谢谢......

我在win7平台上使用gnu make 3.81版

1 个答案:

答案 0 :(得分:0)

您没有添加从tm制作tm.exe的规则。但是,您实际上不需要在Windows上指定.exe扩展名,这将自动处理。所以就这样说:

.phony: all clean

all: tm

tm: tm.o
        $(CC) -o $@ $+ $(LDFLAGS)

tm.o: tm.c
        $(CC) -c -o $@ $< $(CFLAGS)