У меня есть следующий make-файл, который я пытался создать из учебника.Затем я (подумал) я добавил необходимые источники, чтобы подогнать его под мой код ... но он не находит цель.Я думаю, что это может быть связано со структурой папок источников, но я не могу понять это.TOPDIR)
SOURCES:=main_process/main.c \
ezxml/ezxml.c \
info_file_parser/info_file_parser.c \
info_file_parser/array_management.c \
info_file_parser/protocol_file_parser.c \
info_file_parser/sequence_file_parser.c \
info_file_parser/topology_file_parser.c \
seq_exec_module/seq_execution.c \
i2c_device_drivers/pca950x.c \
i2c_device_drivers/ltc2495.c \
i2c_device_drivers/ltc2609.c \
i2c_device_drivers/temperature_uc.c \
i2c_device_drivers/pcf8574.c \
i2c_device_drivers/stepper_motor_control.c \
i2c_device_drivers/test_functions.c \
i2c_device_drivers/stepper_pca.c \
i2c_device_drivers/stepper_atmega.c \
i2c_device_drivers/general_i2c.c \
i2c_device_drivers/zx_mbd_pwr.c \
i2c_device_drivers/virtual_switch_handler.c \
i2c_device_drivers/pressure_sensor_ASDXAV030PG7A5.c \
hashing/ConfigData.c \
hashing/Hash.c \
hashing/LinkedList.c \
init_file_parser/init_file_parser.c \
usb_communication/serial_comm.c \
protocol_parser/protocol_parser.c
BINDIR:=bin
OBJDIR:=.obj
OBJECTS:=$(addprefix $(OBJDIR)/,$(SOURCES:%.c=%.o))
.PHONY: all
all: $(SOURCES) $(EXECUTABLE)
@echo all_start
это этап связывания
$(EXECUTABLE): $(OBJECTS) | $(BINDIR)
@echo link
$(COMPILER) $(LDFLAGS) $(OBJECTS) -o $(BINDIR)/$@
и этап компиляции.но файл main.c не может быть найден, поскольку вы увидите, что
$(OBJECTS): $(OBJDIR)/%.o : %.c | $(OBJDIR)
@echo compile
$(COMPILER) $(CFLAGS) $< -o $@
$(OBJDIR):
mkdir $(OBJDIR)
$(BINDIR):
mkdir $(BINDIR)
.PHONY: clean
clean:
@echo removing_files
rm -rf $(OBJECTS) $(BINDIR)/$(EXECUTABLE)
при запуске make возвращает следующее:
make: *** No rule to make target `main_process/main.c', needed by `all'. Stop.