这是我的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版
答案 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)