首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否可以使用Arduino IDE包含来自另一个库的库?

是否可以使用Arduino IDE包含来自另一个库的库?
EN

Stack Overflow用户
提问于 2011-06-28 17:16:03
回答 3查看 23.3K关注 0票数 18

我正在尝试编写一个Arduino库(实际上是一个C++类),它本身引用了我在Mac的~/Documents/Arduino/libraries目录中安装的另一个库。

在我正在编写的库的.cpp的顶部,我尝试了

代码语言:javascript
复制
#include <ReferencedLibrary.h>

代码语言:javascript
复制
#include "ReferencedLibrary.h"

..。这两种方法都不起作用。我可以成功地从我的~/ #include <ReferencedLibrary.h> /Arduino目录中的草图中获取文档。我是不是遗漏了什么,或者这是Arduino IDE/makefile的限制?有解决办法吗?

EN

回答 3

Stack Overflow用户

发布于 2011-11-23 03:12:49

我已经能够通过使用相对路径在另一个Arduino库中包含一个库。例如,要将AbstractSwitch库包含到DigitalSwitch库中,假设这两个库都位于Arduino的标准库文件夹中各自独立的文件夹中,则可以使用以下include语句:

代码语言:javascript
复制
#include "../AbstractSwitch/AbstractSwitch.h"

换句话说,您的include语句应该是这样的:

代码语言:javascript
复制
#include "../LibraryFolder/LibraryHeaderFile.h"
票数 12
EN

Stack Overflow用户

发布于 2011-11-05 12:34:11

据我所知,使用Arduino环境,你不能从你自己的库中访问你自己的库。没有办法添加路径,因此编译器根本没有办法找到代码。这使得编写使用另一个库中的代码的库变得很困难。我的网络研究表明,这是一个多年来一直存在的问题,但据我所知,还没有得到解决。我怀疑在实现细节上存在困难,或者可能希望以牺牲功能为代价来保持系统的简单。

当然,您总是可以将代码剪切并粘贴到每个新库中,但这是非常不理想的。您还可以将所有代码放在一对.h和.cpp文件中,从而编写一个巨大的库。这也不是很令人满意,但我偶尔也会这样做。

但是,在您自己的库中使用标准Arduino库是一种变通方法,您可以将其放置在sketchbook/ library目录中。由于草图包含标准库位置的路径并链接标准库代码,因此可以在草图中包含感兴趣的标准库的头文件。在下面,也是在你的草图中,包括你自己的库头文件。然后标准库将可用于您的库以及您的草图。

票数 3
EN

Stack Overflow用户

发布于 2018-09-13 18:49:18

不推荐的方法:通过切割boards.txt文件,基本上可以将任何外部库代码添加到Arduino IDE构建中。c/cpp标志中的头和ld标志中的库。这对于使用外部工具的库开发人员可能很有用(cmake/QT creator )。

我修改了/home/pekka/arduino-1.8.5/hardware/teensy/avr/boards.txt,将"/coderoot“添加到了gcc的include path和E_OS_arduino define中,修改了以下几行:

Teensy36.build.flag.cpp=-fno-exceptions -felide-constructors -std=gnu++14 -Wno-error=缩小-fno-rtti i/coderoot -DE_OS_arduino

Teensy36.build.flag.c=-i/coderoot -DE_OS_arduino

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6504211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档