【发布时间】:2016-07-16 14:31:56
【问题描述】:
我正在制作一个小型 Arduino 项目。官方的 Arduino IDE 实在是太烂了,所以我改用 Netbeans 来开发。这是我的makefile:
OBJDIR = ../build
ARDUINO_DIR = /usr/share/arduino
TARGET = main
MCU = atmega328p
F_CPU = 16000000
ARDUINO_PORT = /dev/ttyACM0
AVRDUDE_ARD_PROGRAMMER = arduino
AVRDUDE_ARD_BAUDRATE = 115200
include /usr/share/arduino/Arduino.mk
我想使用一些位于/usr/local/include/myproject 的标头,所以在源代码中添加:
#include "myproject/someheader.h"
现在,当我尝试编译项目时,我收到一条错误消息
fatal error: myproject/someheader.h: No such file or directory
如何在构建项目时包含 /usr/local/include 目录?通常,我会添加
INC=-I/usr/local/include
但这不起作用,我想我需要以其他方式添加头文件?
【问题讨论】:
-
INC在您发布的生成文件中未提及。也许它在您尚未发布的/usr/share/arduino/Arduino.mk中提到?创建符号链接来告诉编译器它应该在哪里查找头文件当然是不必要的,但是您需要将生成文件发布到实际设置编译器标志并用于获得非猜测答案的位置。 -
这是 Makefile:github.com/sudar/Arduino-Makefile/blob/master/Arduino.mk。我完全同意这是必要的。但似乎 Arduino makefile 并不关心常规的包含目录。
-
这里是 Arduino-Makefile 的the README file。在那里阅读包括库和
ARDUINO_SKETCHBOOK