Я новичок в программировании на Си. Я использую Eclipse в Win7 x64 с MinGW GCC.
У меня есть следующий простой make-файл:
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 находится в том же каталоге, что и make-файл.
Проблема в том, что каждый раз, когда make all
запускается, он выдает ошибку на utilities.o и сообщает utilities.o: file not recognized: File format not recognized
utilities.o был создан из другого make-файла и перемещен в этот каталог. Определяемые им функции используются бегуном и тестовыми программами.