我是C编程的新手。我在Win7 x64中使用Eclipse和MinGW GCC。 我有以下简单的makefile:
CC = gcc
CFLAGS = -ansi -pedantic-errors -Wall -Werror
PROGRAMS = test01 test02 test03 test04 test05 runner
all: $(PROGRAMS)
test%: test%.o main-code.o utilities.o
$(CC) -o $@ $< main-code.o utilities.o
runner.o: runner.c main-code.h main-code-b.h utilities.h
$(CC) $(CFLAGS) -c runner.c
main-code.o: main-code.c main-code.h main-code-b.h
$(CC) $(CFLAGS) -c main-code.c
test%.o: test%.c main-code.c main-code.h main-code-b.h utilities.h
$(CC) $(CFLAGS) -c $< main-code.c
clean:
rm -f main-code.o runner.o
utilities.o是预编译的,并且不存在utilities.c。 utilities.o与makefile位于同一目录中。
问题在于,每次运行make all
时,都会在utilities.o处抛出错误并报告utilities.o: file not recognized: File format not recognized
utilities.o是从另一个makefile创建的,并移动到此目录中。它定义的功能由跑步者和测试程序使用。