#c #makefile #arm-none-eabi-gcc
Вопрос:
Итак, это фрагмент из моего файла makefile для создания моей цели:
#include header files directory
vpath %.h = include
vpath %.o = obj
#create a list of *.c from the source directory
SRC = $(wildcard src/*.c)
OBJ = $(SRC:src/%.c=%.o)
main.elf: $(OBJ)
$(CC) $(LDFLAGX) $(addprefix obj/,$(OBJ)) -o $@
%.o : %.c
$(CC) $(CPPFLAGS) $(CFLAGS) -c $^ -o obj/$@
мой каталог проектов выглядит следующим образом:
srcdir
— — — включить
— — — obj
—src
Вот результат, который я получаю:
руку-нет-встроенном-НКУ -включите -ПМКУ=Cortex-м3 -mthumb -с std=gnu11 -О0 -г -настенные -C в каталоге src/РСС.с-О в obj/РСС.о.
руку-нет-встроенном-НКУ -включите -ПМКУ=Cortex-м3 -mthumb -с std=gnu11 -О0 -г -настенные -C в каталоге src/SPI интерфейс.с-О в obj/спи.о.
руку-нет-встроенном-НКУ -включите -ПМКУ=Cortex-м3 -mthumb -с std=gnu11 -О0 -г -настенные -с src/главная.с-О в obj Майне.о.
руку-нет-встроенном-НКУ -включите -ПМКУ=Cortex-м3 -mthumb -с std=gnu11 -О0 -г -настенные -C в каталоге src/запуска.с-О в obj/запуска.о.
руку-нет-встроенном-НКУ -включите -ПМКУ=Cortex-м3 -mthumb -с std=gnu11 -О0 -г -настенные -C в каталоге src/таймер.с-О в obj/таймер.o
arm-нет-eabi-gcc -Iinclude -mcpu=cortex-m3 -mthumb -std=gnu11 -O0 -g -Стена -c src/usart.c -o obj/usart.oarm-нет-eabi-gcc -Xlinker -T -Xlinker lscript.ld -Xlinker -nostdlib -Xlinker -Карта=main.map obj/RCC.o obj/SPI.o obj/main.o obj/запуск.o obj/таймер.o obj/usart.o -o main.elf
c:/program файлы (x86)/набор встроенных инструментов gnu arm/9 2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: не удается найти запуск.o collect2.exe: ошибка: ld вернул 1 статус выхода make.exe»: *** [main.elf] Ошибка 1
Итак, файл startup.o существует в папке obj/, и путь также указан в рецепте, так что же здесь не так?
Я изо всех сил пытался создать свой собственный файл makefile из-за множества таких ошибок, и даже после того, как я опробовал множество руководств и примеров, которые могут решить проблему, время от времени появляется еще один новый, есть ли более удобный способ создания таких проектов, который не доставляет мне столько хлопот?