Hello.
I am getting undefined references to my static variables.
My code is:
One *.ino file, that has
#include "MainHeader.h"
*****************
void setup()
{
********************
initWebServer();
}
MainHeader.h file has code
#include "MySerial.h"
#include "MyWebServer.h"
MySerial.h:
class MySerial
{
static String log[10];
private:
/* data */
public:
MySerial(/* args */);
~MySerial();
void print(String s);
};
MySerial::MySerial(/* args */)
{
for (int x = 0; x < 10; x++)
{
MySerial::log[x]="hello "+String(x);
}
}
MyWebServer.h:
ESP8266WebServer webServer(80);
void initWebServer()
{
webServer.on(UriBraces("/log"), []() {
webServer.send(200, "text/html", "");
for (int x = 0; x < 10; x++)
{
webServer.sendContent(MySerial::log[x]);
}
});
// server.on(UriBraces("/rotate/{}/{}/{}"), []() {
// String min = server.pathArg(0);
// String max = server.pathArg(1);
// String direction = server.pathArg(2);
// server.send(200, "text/plain", "min = " + min + ", max = " + max);
// });
webServer.begin();
Serial.println("HTTP server started");
}
This code fails to compile:
c:/users/qqq/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\SmartToilet.ino.cpp.o:C:\Users\qqq\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:524: undefined reference to `MySerial::log'
c:/users/qqq/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\SmartToilet.ino.cpp.o:C:\Users\qqq\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h:525: undefined reference to `MySerial::log'
collect2.exe: error: ld returned 1 exit status
Can you tell me please how to fix this issue?