Как скомпилировать исходный код avr c и c ++ с помощью make - PullRequest
0 голосов
/ 24 сентября 2018

Я пытался скомпилировать некоторый код, написанный на c и c ++ для atmega32u4.Я написал make-файл из информации, полученной из Интернета, но по какой-то причине это не удалось.Если я запускаю команды отдельно от командной строки, они все работают.Однако при выполнении команды make выдается следующая ошибка:

main.cpp:3:10: fatal error: avr/io.h: No such file or directory

Содержимое файла main.cpp на самом деле не имеет значения, это просто мигающий код.Makefile выглядит так:

all: init clean $(patsubst %.cpp, %.hex, $(wildcard *.cpp))
  avr-size -A $(BUILDPATH)/*.elf

%.c.o: %.c
  @mkdir -p $(BUILDPATH)
  avr-gcc -c -g -Os -w -mmcu=$(CHIP) $^ -o $(BUILDPATH)/$@

%.cpp.o: %.cpp
  @mkdir -p $(BUILDPATH)
  avr-g++ -c -g -Os -w -mmcu=$(CHIP) $^ -o $(BUILDPATH)/$@

%.elf: %.o
  avr-gcc -g -Os -w -mmcu=$(CHIP) $(BUILDPATH)/$^ -o $(BUILDPATH)/$@

%.hex: %.elf
  avr-objcopy -R .eeprom --change-section-lma .eeprom=0 -O ihex $(BUILDPATH)/$^ $(BUILDPATH)/$@

Так что я делаю не так?Нужно ли устанавливать некоторые переменные окружения или структура make-файла неверна?

...