Arduino:在库之间包含
我正试着在我的素描中加入。作为一个沙箱,我使用以下代码(在没有include的情况下编译得很好): 缺少的IRLibProtocols.h位于IRLibProtocols库中 这似乎是一个常见的问题:库之间相互使用。在CMake中,我可以适当地设置include目录,但这里我能看到的唯一工具是来自ArduinoIDE的“添加库”对话框 这个IRLibAll.h应该包含IRLib2中的所有内容。也可以单独导入库,但这并不能解决包含路径的问题。 如何将代码设置为包含相互引用的库Arduino:在库之间包含,arduino,arduino-ide,Arduino,Arduino Ide,我正试着在我的素描中加入。作为一个沙箱,我使用以下代码(在没有include的情况下编译得很好): 缺少的IRLibProtocols.h位于IRLibProtocols库中 这似乎是一个常见的问题:库之间相互使用。在CMake中,我可以适当地设置include目录,但这里我能看到的唯一工具是来自ArduinoIDE的“添加库”对话框 这个IRLibAll.h应该包含IRLib2中的所有内容。也可以单独导入库,但这并不能解决包含路径的问题。 如何将代码设置为包含相互引用的库 我还在存储库上创建了
我还在存储库上创建了一个:1.6.5-r5及更高版本的Arduino IDE通常需要向库依赖关系草图中添加
\include
指令,以便Arduino IDE知道哪些文件夹需要添加到包含路径
因此,一种解决方案是在草图中添加以下线条:
#包括
#包括
#包括
#包括
Arduino IDE 1.6.6中的工具添加了一个改进的依赖项扫描系统。使用Arduino IDE的任何最新版本,您的草图将在编译时不添加任何额外的#include
指令
因此,更好的解决方案是更新到Arduino IDE的最新官方版本。
由于[许可证文档问题[(),当你通过apt install Arduino等安装Arduino IDE时,你会得到一个非常过时的版本,这是一个相当于1.0.5的版本。你错过了过去4年中所做的所有改进。最好总是安装从下载的官方Arduino IDE。哦,对不起,我的屏幕截图让人困惑。顶部显示的路径包括一个IRLib2文件夹,因为这是已访问文件夹的历史记录。我当前的文件夹是libraries,它显示的更为黑色。libraries直接包含其他文件夹。使用Raspbian上的Arduino IDE 1.8.5,它可以正常工作。请检查文件/home/lhk/sketchbook/libraries/IRLibProtocols/IRLibProtocols.h存在。问题是我的IDE版本。它将自己标记为2:1.0.5,我认为它是2.x版本,实际上它是非常过时的1.0.5版本。包源似乎已经过时了。现在它可以编译了。谢谢
#include <IRLibAll.h>
void setup(){}
void loop(){}
/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.