我可以在 Arduino 的库文件夹之外安装库吗?
Can I install a library outside the library folder in Arduino?
我正在和一个朋友一起做一个Arduino项目,我们需要2个外部库,OneWire和DallasTemperature。我可以轻松地将它们安装在我的计算机上,并且可以完全正常工作,但我实际上想将它们安装在我的 git 文件夹中,这样任何人都可以立即使用我的代码。我的文件夹结构如下:
project_folder/
> libraries/
> OneWire/
> OneWire.h and OneWire.cpp and so
> DallasTemperature/
> DallasTemperature.h and DallasTemperature.cpp and so
> project.ino
在头文件中,我不得不更改一些引用,主要是文件路径,所以#include <OneWire.h>
变得#include "../OneWire/OneWire.h"
等等,而且我没有收到任何错误。在我的project.ino中,我使用#include "libraries/OneWire/OneWire.h"
和#include "libraries/DallasTemperature/DallasTemperature.h"
加载了两个库,它们似乎都可以工作,但是当我验证我的代码时,出现以下错误:
C:Users<my username>AppDataLocalTempccZFsuFb.ltrans0.ltrans.o: In function `global constructors keyed to 65535_0_project.ino.cpp.o.1999':
<artificial>:(.text.startup+0x5e): undefined reference to `OneWire::begin(unsigned char)'
<artificial>:(.text.startup+0x6a): undefined reference to `DallasTemperature::DallasTemperature(OneWire*)'
C:Users<my username>AppDataLocalTempccZFsuFb.ltrans0.ltrans.o: In function `setup':
C:Users<my username>Documents<project folder>/project.ino:13: undefined reference to `DallasTemperature::begin()'
C:Users<my username>AppDataLocalTempccZFsuFb.ltrans0.ltrans.o: In function `loop':
C:Users<my username>Documents<project folder>/project.ino:17: undefined reference to `DallasTemperature::requestTemperatures()'
C:Users<my username>Documents<project folder>/project.ino:19: undefined reference to `DallasTemperature::getTempCByIndex(unsigned char)'
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino Uno.
是否可以在我的项目文件夹中安装这些库,或者我真的必须在每个系统上单独安装它们?
是否可以在我的项目文件夹中安装这些库,或者我真的必须在每个系统上单独安装它们?
答案当然是肯定的,首先你需要一个IDE可以使相对包括
您可以将Arduino IDE更新为版本>= 1.6.10,并将文件夹重组为如下所示
|project_folder/
|>src/
| |> OneWire/
| | > OneWire.h and OneWire.cpp and so
| |> DallasTemperature/
| | > DallasTemperature.h and DallasTemperature.cpp and so
|> project.ino
然后将它们从您的草图中包括在内,如下所示
#include "src/OneWire/OneWire.h"
#include "src/DallasTemperature/DallasTemperature.h"
推荐选项
- 使用任何其他IDE而不是Arduino IDE...我个人更喜欢 Atmel 工作室,您可以从官方网站免费下载 Atmel 工作室 本课展示了如何将 Arduino 草图转换为与 atmel studio 配合使用
相关文章:
- 如何将更多文件夹添加到c++include路径
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 如何在文档文件夹中创建目录
- "assimp/config.h"找不到,但它在文件夹中
- C++入门 5 版:类消息和文件夹
- 我可以在 Arduino 的库文件夹之外安装库吗?
- 如何按文件扩展名引用文件夹中的文件
- 在QTreeView中仅显示共享驱动器和文件夹
- 介子复制/安装头文件到输出目录并保持文件夹结构
- 如何在没有"fatal error: Wt/WApplication: No such file or directory"的情况下将wt安装到自定义文件夹中
- Windows SDK 8:关于安装位置,文件夹命名法和Windowssdkdir_old Env变量的混乱
- 代码块,添加了环境变量路径,但在安装文件夹之外出现 g++ 错误
- 有条件地提示安装文件夹对话框
- 卸载程序不会删除复制到VS2010安装程序项目中的系统文件夹。
- 在应用程序文件夹中安装 C/C++ 库"IGRAPH"
- 我们是否需要添加调试/发布文件夹中的文件来在Visual Studio中创建安装程序
- 在c++中使用Octave库(dll等)而不安装Octave(只是复制安装文件夹)
- 如何从安装的文件夹c/c++中读取文件