makefile - 如何用make编译avr c和c++源代码
问题描述
我试图为 atmega32u4 编译一些用 c 和 c++ 编写的代码。我根据从 Internet 收集的信息编写了一个 makefile,但由于某种原因它失败了。如果我从命令行单独运行命令,它们都可以工作。但是运行 make 命令会出现以下错误:
main.cpp:3:10: fatal error: avr/io.h: No such file or directory
main.cpp 文件的内容并不真正相关,它只是一个闪烁代码。生成文件如下所示:
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)/$@
那么我做错了什么?我必须设置一些环境变量还是makefile的结构不正确?
解决方案
推荐阅读
- javascript - Tensorflow 模型未在 javascript 中训练
- c++ - C++ 对象和内存分配
- visual-studio-code - VS Code 左侧的彩色方块是什么意思?
- node.js - 如何解决“EADDRINUSE”错误和“代理错误”?
- python - 如何使用 pybind11 提供默认枚举值?
- javascript - 如何将数组中的 JSON 数据保存到 Firestore
- postgresql - postgresql中删除其他表引用的记录的过程
- javascript - 使用变异观察者观察 CSS 类错误:(参数 1 不是类型“节点”)
- date - RethinkDB 过滤日期和时间范围
- c - 找到缩放元素的正确位置(添加图)