Порядок подключения библиотек

Тема в разделе "Arduino & Shields", создана пользователем petypen, 2 окт 2016.

Метки:
  1. petypen

    petypen Нерд

    Коллеги, добрый день.
    Возился сегодня с проектом и застрял с одной проблемой. В конце концов разобрался но остались некоторые вопросы. Надеюсь на вашу помощь.

    Вот пример скетча, который генирит ошибку "error: 'PImage' does not name a type"

    Код (C++):
    #include <TFT.h>
    #include <SPI.h>
    #include <SD.h>

    // SETUP PINS TFT LCD
    #define TFT_SS 10 // slave select
    #define TFT_DC 9 // data / command
    #define TFT_RST 8

    TFT tftScreen = TFT(TFT_SS, TFT_DC, TFT_RST);
    PImage logo;

    void setup() {
    }

    void loop() {
    }
    теперь в этом же скетче я просто переставлю строку подключения библиотеки работы с TFT дисплеями (#include <TFT.h>) на последнее место:

    Код (C++):
    #include <SPI.h>
    #include <SD.h>
    #include <TFT.h> // стоит на последнем месте

    // SETUP PINS TFT LCD
    #define TFT_SS 10 // slave select
    #define TFT_DC 9 // data / command
    #define TFT_RST 8

    TFT tftScreen = TFT(TFT_SS, TFT_DC, TFT_RST);
    PImage logo;

    void setup() {
    }

    void loop() {
    }
    и всё, компиляция проходит без ошибок.

    Подозреваю зависимость библиотеки TFT от библиотеки SD.
    Коллеги, как заранее предупреждать такие ошибки и подключать библиотеки в правильной последовательности?
     
  2. ostrov

    ostrov Гуру

    Только методом тыка эмпирически. Библиотек великая туча и никто не даст гарантии, что все они сделаны идеально. Кроме того, могут пересекаться имена глобальных переменных, функций, и таймеры, да много чего еще. Так что, ИМХО, универсальный совет вряд ли существует.
     
    petypen нравится это.
  3. ZAZ-965

    ZAZ-965 Гуру

    Так точно, класс PImage определен только если подключена библиотека SD.h
     
    petypen нравится это.
  4. petypen

    petypen Нерд

    спасибо, коллеги