PingClass not defined as extern? So header file cannot be referenced in multiple source files in same project? I want to use PingClass in multiple locations in source, which has multiple source files. This can be done with other ESP8266 libraries/APIs header files, but no yours. If I include ESP8266Ping.h in more than a single source file (.cpp). For example Server.cpp and Wireless.cpp, results in compile/link errors.
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o:(.bss._ZN9PingClass7_errorsE+0x0): multiple definition of `PingClass::_errors'; sketch\Server.cpp.o:(.bss._ZN9PingClass7_errorsE+0x0): first defined here
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o:(.bss._ZN9PingClass8_successE+0x0): multiple definition of `PingClass::_success'; sketch\Server.cpp.o:(.bss._ZN9PingClass8_successE+0x0): first defined here
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o:(.bss._ZN9PingClass9_avg_timeE+0x0): multiple definition of `PingClass::_avg_time'; sketch\Server.cpp.o:(.bss._ZN9PingClass9_avg_timeE+0x0): first defined here
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o:(.bss._ZN9PingClass15_expected_countE+0x0): multiple definition of `PingClass::_expected_count'; sketch\Server.cpp.o:(.bss._ZN9PingClass15_expected_countE+0x0): first defined here
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o: in function `PingClass::_ping_recv_cb(void*, void*)':
C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:67: multiple definition of `PingClass::_ping_recv_cb(void*, void*)'; sketch\Server.cpp.o:C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:67: first defined here
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o: in function `PingClass::PingClass()':
C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:23: multiple definition of `PingClass::PingClass()'; sketch\Server.cpp.o:C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:23: first defined here
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o: in function `PingClass::PingClass()':
C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:23: multiple definition of `PingClass::PingClass()'; sketch\Server.cpp.o:C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:23: first defined here
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o: in function `PingClass::ping(IPAddress, unsigned char)':
C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:25: multiple definition of `PingClass::ping(IPAddress, unsigned char)'; sketch\Server.cpp.o:C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:25: first defined here
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o: in function `PingClass::ping(char const*, unsigned char)':
C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:54: multiple definition of `PingClass::ping(char const*, unsigned char)'; sketch\Server.cpp.o:C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:54: first defined here
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o: in function `PingClass::averageTime()':
C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:65: multiple definition of `PingClass::averageTime()'; sketch\Server.cpp.o:C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.impl.h:65: first defined here
c:/users/[redacted]/documents/arduinodata/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\Wireless.cpp.o:C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.h:57: multiple definition of `Ping'; sketch\Server.cpp.o:C:\Users[redacted]\Documents\Arduino\libraries\ESP8266Ping\src/ESP8266Ping.h:57: first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board NodeMCU 0.9 (ESP-12 Module).