с помощью макросов например:
Код:
#if defined(__AVR__)
#include <avr/pgmspace.h> //use for PROGMEM Arduino AVR
#elif defined(ESP8266) || defined(ESP32)
#include <pgmspace.h> //use for PROGMEM Arduino ESP8266
#elif defined(_VARIANT_ARDUINO_STM32_)
#include <avr/pgmspace.h> //use for PROGMEM Arduino STM32
#endif
а вот так можно отключать библиотеки, чтоб экономить место на флешке. дано библотека MAX31855 и два класса. первый использует железный SPI, а второй ногодрыг aka bit-bang.
в железном MAX31855.h пишем:
Код:
#ifndef MAX31855_SOFT_SPI //enable upload spi.h
#include <SPI.h>
#endif
в ногодрыге MAX31855_soft.h пишем:
Код:
#define MAX31855_SOFT_SPI //disable upload spi.h
#include <MAX31855.h>
теперь когда мы используем #include <MAX31855_soft.h>, у сначало грузится макрос MAX31855_SOFT_SPI, а потом грузится все из MAX31855soft.h где есть проверка о том, что если макроса MAX31855_SOFT_SPI нет то грузить SPI.h, если MAX31855_SOFT_SPI есть то пропустить загрузку SPI.h
подробности
тут.