Доброго времени суток.
Подскажите, как вынести define из библиотеки в скетч.
Суть следующая, есть библиотека (websocket) внутри нее конструкция
#include "config.h"
#if NETWORK_CONTROLLER == ETHERNET_CONTROLLER_W5X00
# include <Ethernet.h>
/** Specifies maximum number of clients connected to server. */
constexpr uint8_t kMaxConnections{MAX_SOCK_NUM};
#elif NETWORK_CONTROLLER == ETHERNET_NATIVE_CONTROLLER_W5X00
# include <NativeEthernet.h>
/** Specifies maximum number of clients connected to server. */
constexpr uint8_t kMaxConnections{MAX_SOCK_NUM};
#elif NETWORK_CONTROLLER == ETHERNET_CONTROLLER_ENC28J60
# include <EthernetENC.h>
constexpr uint8_t kMaxConnections{4};
#elif NETWORK_CONTROLLER == NETWORK_CONTROLLER_WIFI
# if PLATFORM_ARCH == PLATFORM_ARCHITECTURE_ESP8266
# include <ESP8266WiFi.h>
# else
# include <WiFi.h>
# endif
# include <WiFiClient.h>
# include <WiFiServer.h>
constexpr uint8_t kMaxConnections{8};
#else
# error "Network controller is required!"
#endif
Соответственно в config.h
#ifndef NETWORK_CONTROLLER
# define NETWORK_CONTROLLER ETHERNET_CONTROLLER_W5X00
#endif
Я хочу вынести #define NETWORK_CONTROLLER ETHERNET_NATIVE_CONTROLLER_W5X00
в скетч, то есть пишу вот так
#define NETWORK_CONTROLLER ETHERNET_NATIVE_CONTROLLER_W5X00
#include <WebSocketServer.h>
Но так не работает, все равно тянется библиотека Ethernet.h, а должна NativeEthernet.h.
Если закоментить в config.h # define NETWORK_CONTROLLER ETHERNET_CONTROLLER_W5X00 то получаю ошибку компиляции error “Network controller is required!”, то есть получается NETWORK_CONTROLLER в библиотеку не попал.
Как сделать, чтобы он туда попал?