Arduino:包括库之间
Arduino: includes between libraries
我正在尝试将 IRLIB2 包含在我的草图中。作为一个沙箱,我正在使用这段代码(没有 include 编译得很好):
#include <IRLibAll.h>
void setup(){}
void loop(){}
IRLib2 被打包成一组单独的库。其中有五个,都必须通过 arduino 库管理器单独安装。我已经按照存储库中关于此的说明进行操作。我的写生簿文件夹现在看起来像这样:
这种布局给我带来了问题。 include 语句生成以下错误消息:
/home/lhk/sketchbook/libraries/IRLib2/IRLibAll.h:22:0,
from sketch_mar04f.ino:1:
/home/lhk/sketchbook/libraries/IRLib2/IRLibDecodeBase.h:13:28: fatal error: IRLibProtocols.h: No such file or directory
compilation terminated.
缺少的 IRLibProtocols.h 位于 IRLibProtocols 库中。
这似乎是一个常见问题:库相互使用。在 CMake 中,我可以适当地设置包含目录,但在这里我能看到的唯一工具是来自 arduino IDE.
的 "Add Library" 对话
IRLibAll.h 应该包含来自 IRLib2 的所有内容。也可以单独导入库,但这并不能解决包含路径的问题。
我如何设置我的代码以正确包含相互引用的库?
我还在存储库上创建了一个 issue:
Arduino IDE 版本 1.6.5-r5 及更早版本通常需要您将 #include
指令添加到您的草图以获取库依赖项,以便 Arduino IDE 知道哪些文件夹需要添加到包含路径。
因此,一种解决方案是将以下行添加到您的草图中:
#include <IRLibProtocols.h>
#include <IRLibRecv.h>
#include <IRLibRecvPCI.h>
#include <IRLibFreq.h>
在 Arduino IDE 1.6.6 中使用 arduino-builder 工具添加了一个改进的依赖扫描系统。使用任何最新版本的 Arduino IDE 您的草图将在不添加任何额外的 #include
指令的情况下编译。
因此,更好的解决办法是更新Arduino官方最新版本IDE。
由于[许可证文件问题[(https://github.com/arduino/Arduino/pull/2703), when you install the Arduino IDE via apt install arduino
, etc. you get a very outdated version, which is a somewhat modified equivalent of 1.0.5. You miss out on all the improvements that have been made in the last 4 years. It's best to always install the official Arduino IDE downloaded from https://www.arduino.cc/en/Main/Software.
我正在尝试将 IRLIB2 包含在我的草图中。作为一个沙箱,我正在使用这段代码(没有 include 编译得很好):
#include <IRLibAll.h>
void setup(){}
void loop(){}
IRLib2 被打包成一组单独的库。其中有五个,都必须通过 arduino 库管理器单独安装。我已经按照存储库中关于此的说明进行操作。我的写生簿文件夹现在看起来像这样:
这种布局给我带来了问题。 include 语句生成以下错误消息:
/home/lhk/sketchbook/libraries/IRLib2/IRLibAll.h:22:0,
from sketch_mar04f.ino:1:
/home/lhk/sketchbook/libraries/IRLib2/IRLibDecodeBase.h:13:28: fatal error: IRLibProtocols.h: No such file or directory
compilation terminated.
缺少的 IRLibProtocols.h 位于 IRLibProtocols 库中。
这似乎是一个常见问题:库相互使用。在 CMake 中,我可以适当地设置包含目录,但在这里我能看到的唯一工具是来自 arduino IDE.
的 "Add Library" 对话IRLibAll.h 应该包含来自 IRLib2 的所有内容。也可以单独导入库,但这并不能解决包含路径的问题。 我如何设置我的代码以正确包含相互引用的库?
我还在存储库上创建了一个 issue:
Arduino IDE 版本 1.6.5-r5 及更早版本通常需要您将 #include
指令添加到您的草图以获取库依赖项,以便 Arduino IDE 知道哪些文件夹需要添加到包含路径。
因此,一种解决方案是将以下行添加到您的草图中:
#include <IRLibProtocols.h>
#include <IRLibRecv.h>
#include <IRLibRecvPCI.h>
#include <IRLibFreq.h>
在 Arduino IDE 1.6.6 中使用 arduino-builder 工具添加了一个改进的依赖扫描系统。使用任何最新版本的 Arduino IDE 您的草图将在不添加任何额外的 #include
指令的情况下编译。
因此,更好的解决办法是更新Arduino官方最新版本IDE。
由于[许可证文件问题[(https://github.com/arduino/Arduino/pull/2703), when you install the Arduino IDE via apt install arduino
, etc. you get a very outdated version, which is a somewhat modified equivalent of 1.0.5. You miss out on all the improvements that have been made in the last 4 years. It's best to always install the official Arduino IDE downloaded from https://www.arduino.cc/en/Main/Software.