【问题标题】:Exclude Arduino library from compilation从编译中排除 Arduino 库
【发布时间】:2015-08-21 23:49:12
【问题描述】:

我使用“Adafruit_SSD1306”显示库创建了一个 Arduino 项目,该项目使用 Uno 板按预期工作。

后续项目需要使用 ESP8266 wifi 板,需要一个新的显示库“ESP_SSD1306”。我可以从源代码中看到这个库来自“Adafruit_SSD1306”。一切都按预期编译和工作。

但是,如果我返回并尝试重建我的旧项目,或者任何引用“Adafruit_SSD1306”的旧项目、示例等,它将无法构建,除非我从“库”文件夹中删除“ESP_SSD1306”库。

错误是:

sketch_aug04b_xxxxxxx.ino:24:30:致命错误:Adafruit_SSD1306.h:没有这样的文件或目录 编译终止。 编译出错。

解决方法是在我切换到非 ESP8266 项目时从库文件夹中添加或删除此库,并在切换到基于 ESP8266 的项目时手动将其添加回来。

我猜测库在某种程度上存在冲突,但我希望有更好的用户体验来处理这个问题。我可以使用一些#define 或项目设置从编译路径中删除库(当前进程除外,这涉及手动删除库)。

【问题讨论】:

    标签: arduino arduino-ide


    【解决方案1】:

    看来我找到了答案。

    两个库在其 library.properties 文件中具有相同的名称。这似乎是导致冲突的原因。

    解决方案是将 ESP_SSD1306 库的 name 属性从“Adafruit SSD1306”更改为“ESP SSD1306”:

    name=ESP SSD1306 version=1.0.0 author=Adafruit maintainer=Adafruit sentence=SSD1306 oled driver library for 'monochrome' 128x64 and 128x32 OLEDs! paragraph=SSD1306 oled driver library for 'monochrome' 128x64 and 128x32 OLEDs! category=Display url=@987654321@ architectures=*

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多