【问题标题】:How do I install a library file in Arduino IDE?如何在 Arduino IDE 中安装库文件?
【发布时间】:2020-08-24 22:40:09
【问题描述】:

我正在尝试通过选择“Sketch”>“Include Library”>“Add .ZIPLibrary”在 Arduino IDE 中安装一个库 (pitches.h)。然后我收到如下所示的错误消息:

/Users/tomo/Desktop/passive_buzzer/passive_buzzer.ino
A library named pitches already exists

但我在下拉菜单中看不到库“pitch”,通过选择“包含库”会显示该库。然后当我编译草图时,我收到以下错误消息:

passive_buzzer:4:10: fatal error: pitches.h: No such file or directory
 #include <pitches.h>
          ^~~~~~~~~~~
compilation terminated.
exit status 1
pitches.h: No such file or directory

所以我认为该库没有正确安装。谁能帮我正确安装?

库的文件名是正确的,因为我将文件名从文件复制并粘贴到草图。

我认为库的文件夹结构也应该是正确的。当我解压缩“pitches.zip”时,我在一个名为“pitches”的文件夹中得到了“pitches.h”文件。我只压缩了“pitches.h”文件,然后我尝试通过选择“Sketch”>“Include Library”>“Add .ZIPLibrary”来安装它。我收到以下消息:

java.io.IOException: Zip doesn't contain a library
    at processing.app.Base.handleAddLibrary(Base.java:2417)
    at processing.app.Base$6.actionPerformed(Base.java:1124)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:125)
    at java.awt.MenuItem.processActionEvent(MenuItem.java:669)
    at java.awt.MenuItem.processEvent(MenuItem.java:628)
    at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:357)
    at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:345)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:763)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:733)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Zip doesn't contain a library

环境 Arduino:1.8.13(Mac OS X),板:“Arduino Mega 或 Mega 2560,ATmega2560(Mega 2560)” macOS Mojave 版本。 10.14.6

提前谢谢你, 托莫

【问题讨论】:

  • 查看您的速写本文件夹中的libraries 文件夹。 sketchbook 文件夹在 IDE Preferences 中配置
  • 成功了!非常感谢!!!我了解到 1) 库文件必须存储在名为“libraries”的文件夹中;2)“libraries”文件夹必须位于“sketchbook location”中,该位置在 "Arduino" &gt; "Preferences" 中定义。

标签: arduino


【解决方案1】:

感谢 Juraj,我找到了安装和包含库的方法:

  1. 将速写本文件和库文件保存在“速写本位置”中。
  2. 在“速写本位置”中打开速写本文件。 (会自动创建一个文件夹并将速写本文件移动到该文件夹​​,然后速写本将打开。)
  3. 通过打开的速写本,将库文件安装到“速写本位置”并包含它。

“Sketchbook 位置”可以通过"Arduino" &gt; "Preference" 确认/定义。这种方式适用于Arduino提供的其他sketchbook文件及其相关库文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2020-05-28
    • 2022-10-24
    相关资源
    最近更新 更多