Having some trouble here with getting the ESP firmware to compile in Arduino IDE, under Linux. I get the following errors:
This doesn't seem to be related to the Arduino IDE version, the ESP board definitions I'm using is version 3.0.2.
/home/erasynth_fw/Nextcloud/Sketchbook/ESP8266/ESP8266.ino: In function 'void setWifi()':
ESP8266:194: error: call of overloaded 'String(IPAddress&)' is ambiguous
194 | debugPrint("IP: "); debugPrintln(String(ip));
| ^
In file included from /home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:286,
from sketch/ESP8266.ino.cpp:1:
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:77:18: note: candidate: 'String::String(double, unsigned char)'
77 | explicit String(double, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:76:18: note: candidate: 'String::String(float, unsigned char)'
76 | explicit String(float, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:74:18: note: candidate: 'String::String(long long unsigned int)'
74 | explicit String(unsigned long long /* base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:72:18: note: candidate: 'String::String(long long int)'
72 | explicit String(long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:71:18: note: candidate: 'String::String(long unsigned int, unsigned char)'
71 | explicit String(unsigned long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:70:18: note: candidate: 'String::String(long int, unsigned char)'
70 | explicit String(long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:69:18: note: candidate: 'String::String(unsigned int, unsigned char)'
69 | explicit String(unsigned int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:68:18: note: candidate: 'String::String(int, unsigned char)'
68 | explicit String(int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:67:18: note: candidate: 'String::String(unsigned char, unsigned char)'
67 | explicit String(unsigned char, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:61:18: note: candidate: 'String::String(char)'
61 | explicit String(char c) {
| ^~~~~~
ESP8266:195: error: call of overloaded 'String(IPAddress&)' is ambiguous
195 | debugPrint("Gateway: "); debugPrintln(String(gateway));
| ^
In file included from /home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:286,
from sketch/ESP8266.ino.cpp:1:
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:77:18: note: candidate: 'String::String(double, unsigned char)'
77 | explicit String(double, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:76:18: note: candidate: 'String::String(float, unsigned char)'
76 | explicit String(float, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:74:18: note: candidate: 'String::String(long long unsigned int)'
74 | explicit String(unsigned long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:72:18: note: candidate: 'String::String(long long int)'
72 | explicit String(long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:71:18: note: candidate: 'String::String(long unsigned int, unsigned char)'
71 | explicit String(unsigned long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:70:18: note: candidate: 'String::String(long int, unsigned char)'
70 | explicit String(long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:69:18: note: candidate: 'String::String(unsigned int, unsigned char)'
69 | explicit String(unsigned int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:68:18: note: candidate: 'String::String(int, unsigned char)'
68 | explicit String(int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:67:18: note: candidate: 'String::String(unsigned char, unsigned char)'
67 | explicit String(unsigned char, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:61:18: note: candidate: 'String::String(char)'
61 | explicit String(char c) {
| ^~~~~~
ESP8266:196: error: call of overloaded 'String(IPAddress&)' is ambiguous
196 | debugPrint("Subnet: "); debugPrintln(String(subnet));
| ^
In file included from /home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:286,
from sketch/ESP8266.ino.cpp:1:
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:77:18: note: candidate: 'String::String(double, unsigned char)'
77 | explicit String(double, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:76:18: note: candidate: 'String::String(float, unsigned char)'
76 | explicit String(float, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:74:18: note: candidate: 'String::String(long long unsigned int)'
74 | explicit String(unsigned long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:72:18: note: candidate: 'String::String(long long int)'
72 | explicit String(long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:71:18: note: candidate: 'String::String(long unsigned int, unsigned char)'
71 | explicit String(unsigned long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:70:18: note: candidate: 'String::String(long int, unsigned char)'
70 | explicit String(long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:69:18: note: candidate: 'String::String(unsigned int, unsigned char)'
69 | explicit String(unsigned int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:68:18: note: candidate: 'String::String(int, unsigned char)'
68 | explicit String(int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:67:18: note: candidate: 'String::String(unsigned char, unsigned char)'
67 | explicit String(unsigned char, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:61:18: note: candidate: 'String::String(char)'
61 | explicit String(char c) {
| ^~~~~~
ESP8266:244: error: call of overloaded 'String(IPAddress)' is ambiguous
244 | debugPrint("Connected! IP address: "); debugPrintln(String(WiFi.localIP()));
| ^
In file included from /home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:286,
from sketch/ESP8266.ino.cpp:1:
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:77:18: note: candidate: 'String::String(double, unsigned char)'
77 | explicit String(double, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:76:18: note: candidate: 'String::String(float, unsigned char)'
76 | explicit String(float, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:74:18: note: candidate: 'String::String(long long unsigned int)'
74 | explicit String(unsigned long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:72:18: note: candidate: 'String::String(long long int)'
72 | explicit String(long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:71:18: note: candidate: 'String::String(long unsigned int, unsigned char)'
71 | explicit String(unsigned long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:70:18: note: candidate: 'String::String(long int, unsigned char)'
70 | explicit String(long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:69:18: note: candidate: 'String::String(unsigned int, unsigned char)'
69 | explicit String(unsigned int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:68:18: note: candidate: 'String::String(int, unsigned char)'
68 | explicit String(int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:67:18: note: candidate: 'String::String(unsigned char, unsigned char)'
67 | explicit String(unsigned char, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:61:18: note: candidate: 'String::String(char)'
61 | explicit String(char c) {
| ^~~~~~
ESP8266:267: error: call of overloaded 'String(IPAddress&)' is ambiguous
267 | debugPrint("IP: "); debugPrintln(String(ip));
| ^
In file included from /home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:286,
from sketch/ESP8266.ino.cpp:1:
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:77:18: note: candidate: 'String::String(double, unsigned char)'
77 | explicit String(double, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:76:18: note: candidate: 'String::String(float, unsigned char)'
76 | explicit String(float, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:74:18: note: candidate: 'String::String(long long unsigned int)'
74 | explicit String(unsigned long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:72:18: note: candidate: 'String::String(long long int)'
72 | explicit String(long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:71:18: note: candidate: 'String::String(long unsigned int, unsigned char)'
71 | explicit String(unsigned long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:70:18: note: candidate: 'String::String(long int, unsigned char)'
70 | explicit String(long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:69:18: note: candidate: 'String::String(unsigned int, unsigned char)'
69 | explicit String(unsigned int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:68:18: note: candidate: 'String::String(int, unsigned char)'
68 | explicit String(int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:67:18: note: candidate: 'String::String(unsigned char, unsigned char)'
67 | explicit String(unsigned char, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:61:18: note: candidate: 'String::String(char)'
61 | explicit String(char c) {
| ^~~~~~
ESP8266:268: error: call of overloaded 'String(IPAddress&)' is ambiguous
268 | debugPrint("Gateway: "); debugPrintln(String(gateway));
| ^
In file included from /home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:286,
from sketch/ESP8266.ino.cpp:1:
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:77:18: note: candidate: 'String::String(double, unsigned char)'
77 | explicit String(double, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:76:18: note: candidate: 'String::String(float, unsigned char)'
76 | explicit String(float, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:74:18: note: candidate: 'String::String(long long unsigned int)'
74 | explicit String(unsigned long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:72:18: note: candidate: 'String::String(long long int)'
72 | explicit String(long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:71:18: note: candidate: 'String::String(long unsigned int, unsigned char)'
71 | explicit String(unsigned long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:70:18: note: candidate: 'String::String(long int, unsigned char)'
70 | explicit String(long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:69:18: note: candidate: 'String::String(unsigned int, unsigned char)'
69 | explicit String(unsigned int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:68:18: note: candidate: 'String::String(int, unsigned char)'
68 | explicit String(int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:67:18: note: candidate: 'String::String(unsigned char, unsigned char)'
67 | explicit String(unsigned char, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:61:18: note: candidate: 'String::String(char)'
61 | explicit String(char c) {
| ^~~~~~
ESP8266:269: error: call of overloaded 'String(IPAddress&)' is ambiguous
269 | debugPrint("Subnet: "); debugPrintln(String(subnet));
| ^
In file included from /home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:286,
from sketch/ESP8266.ino.cpp:1:
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:77:18: note: candidate: 'String::String(double, unsigned char)'
77 | explicit String(double, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:76:18: note: candidate: 'String::String(float, unsigned char)'
76 | explicit String(float, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:74:18: note: candidate: 'String::String(long long unsigned int)'
74 | explicit String(unsigned long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:72:18: note: candidate: 'String::String(long long int)'
72 | explicit String(long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:71:18: note: candidate: 'String::String(long unsigned int, unsigned char)'
71 | explicit String(unsigned long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:70:18: note: candidate: 'String::String(long int, unsigned char)'
70 | explicit String(long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:69:18: note: candidate: 'String::String(unsigned int, unsigned char)'
69 | explicit String(unsigned int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:68:18: note: candidate: 'String::String(int, unsigned char)'
68 | explicit String(int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:67:18: note: candidate: 'String::String(unsigned char, unsigned char)'
67 | explicit String(unsigned char, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:61:18: note: candidate: 'String::String(char)'
61 | explicit String(char c) {
| ^~~~~~
ESP8266:275: error: call of overloaded 'String(IPAddress)' is ambiguous
275 | debugPrint("Server IP address: "); debugPrintln(String(WiFi.softAPIP()));
| ^
In file included from /home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:286,
from sketch/ESP8266.ino.cpp:1:
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:77:18: note: candidate: 'String::String(double, unsigned char)'
77 | explicit String(double, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:76:18: note: candidate: 'String::String(float, unsigned char)'
76 | explicit String(float, unsigned char decimalPlaces = 2);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:74:18: note: candidate: 'String::String(long long unsigned int)'
74 | explicit String(unsigned long long / base 10 /);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:72:18: note: candidate: 'String::String(long long int)'
72 | explicit String(long long / base 10 */);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:71:18: note: candidate: 'String::String(long unsigned int, unsigned char)'
71 | explicit String(unsigned long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:70:18: note: candidate: 'String::String(long int, unsigned char)'
70 | explicit String(long, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:69:18: note: candidate: 'String::String(unsigned int, unsigned char)'
69 | explicit String(unsigned int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:68:18: note: candidate: 'String::String(int, unsigned char)'
68 | explicit String(int, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:67:18: note: candidate: 'String::String(unsigned char, unsigned char)'
67 | explicit String(unsigned char, unsigned char base = 10);
| ^~~~~~
/home/erasynth_fw/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/WString.h:61:18: note: candidate: 'String::String(char)'
61 | explicit String(char c) {
| ^~~~~~
exit status 1
call of overloaded 'String(IPAddress&)' is ambiguous