Small time programme, with lots of errors after compiling okay

This program was working fine until I decided to tidy it up and split it into multiple parts. So I will have obviously(Not to me) done something wrong again.

Sorry to take up more of your time in answering my silly questions.


Processing esp12e (platform: espressif8266; board: esp12e; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp12e.html
PLATFORM: Espressif 8266 (2.6.2) > Espressif ESP8266 ESP-12E
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:
 - framework-arduinoespressif8266 3.20704.0 (2.7.4)
 - tool-esptool 1.413.0 (4.13)
 - tool-esptoolpy 1.20800.0 (2.8.0)
 - toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 31 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <TaskScheduler> 3.2.0
|-- <LiquidCrystal_I2C> 1.1.4
|   |-- <Wire> 1.0
|-- <ESP8266WiFi> 1.0
Building in release mode
Compiling .pio\build\esp12e\src\Display_Setup.cpp.o
Compiling .pio\build\esp12e\src\Time_Setup.cpp.o
Compiling .pio\build\esp12e\src\WiFi_Setup.cpp.o
Compiling .pio\build\esp12e\src\main.cpp.o
Linking .pio\build\esp12e\firmware.elf
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::isEnabled()':
Time_Setup.cpp:(.text._ZN4Task9isEnabledEv+0x0): multiple definition of `Task::isEnabled()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task9isEnabledEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::getInterval()':
Time_Setup.cpp:(.text._ZN4Task11getIntervalEv+0x0): multiple definition of `Task::getInterval()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11getIntervalEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::getIterations()':
Time_Setup.cpp:(.text._ZN4Task13getIterationsEv+0x0): multiple definition of `Task::getIterations()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13getIterationsEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::getRunCounter()':
Time_Setup.cpp:(.text._ZN4Task13getRunCounterEv+0x0): multiple definition of `Task::getRunCounter()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13getRunCounterEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::setCallback(void (*)())':
Time_Setup.cpp:(.text._ZN4Task11setCallbackEPFvvE+0x0): multiple definition of `Task::setCallback(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11setCallbackEPFvvE+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::setOnEnable(bool (*)())':
Time_Setup.cpp:(.text._ZN4Task11setOnEnableEPFbvE+0x0): multiple definition of `Task::setOnEnable(bool (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11setOnEnableEPFbvE+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::setOnDisable(void (*)())':
Time_Setup.cpp:(.text._ZN4Task12setOnDisableEPFvvE+0x0): multiple definition of `Task::setOnDisable(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task12setOnDisableEPFvvE+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::reset()':
Time_Setup.cpp:(.text._ZN4Task5resetEv+0x0): multiple definition of `Task::reset()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task5resetEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::setIterations(long)':
Time_Setup.cpp:(.text._ZN4Task13setIterationsEl+0x0): multiple definition of `Task::setIterations(long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13setIterationsEl+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::enable()':
Time_Setup.cpp:(.text._ZN4Task6enableEv+0x4): multiple definition of `Task::enable()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task6enableEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::enableIfNot()':
Time_Setup.cpp:(.text._ZN4Task11enableIfNotEv+0x4): multiple definition of `Task::enableIfNot()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11enableIfNotEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::delay(unsigned long)':
Time_Setup.cpp:(.text._ZN4Task5delayEm+0x4): multiple definition of `Task::delay(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task5delayEm+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::enableDelayed(unsigned long)':
Time_Setup.cpp:(.text._ZN4Task13enableDelayedEm+0x8): multiple definition of `Task::enableDelayed(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13enableDelayedEm+0x8): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::forceNextIteration()':
Time_Setup.cpp:(.text._ZN4Task18forceNextIterationEv+0x4): multiple definition of `Task::forceNextIteration()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task18forceNextIterationEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::yield(void (*)())':
Time_Setup.cpp:(.text._ZN4Task5yieldEPFvvE+0x4): multiple definition of `Task::yield(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task5yieldEPFvvE+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::yieldOnce(void (*)())':
Time_Setup.cpp:(.text._ZN4Task9yieldOnceEPFvvE+0x4): multiple definition of `Task::yieldOnce(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task9yieldOnceEPFvvE+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::setInterval(unsigned long)':
Time_Setup.cpp:(.text._ZN4Task11setIntervalEm+0x4): multiple definition of `Task::setInterval(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11setIntervalEm+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::set(unsigned long, long, void (*)(), bool (*)(), void (*)())':
Time_Setup.cpp:(.text._ZN4Task3setEmlPFvvEPFbvES1_+0x4): multiple definition of `Task::set(unsigned long, long, void (*)(), bool (*)(), void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task3setEmlPFvvEPFbvES1_+0x4): 
first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::disable()':
Time_Setup.cpp:(.text._ZN4Task7disableEv+0x0): multiple definition of `Task::disable()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task7disableEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::restart()':
Time_Setup.cpp:(.text._ZN4Task7restartEv+0x4): multiple definition of `Task::restart()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task7restartEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::restartDelayed(unsigned long)':
Time_Setup.cpp:(.text._ZN4Task14restartDelayedEm+0x4): multiple definition of `Task::restartDelayed(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task14restartDelayedEm+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::isFirstIteration()':
Time_Setup.cpp:(.text._ZN4Task16isFirstIterationEv+0x0): multiple definition of `Task::isFirstIteration()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task16isFirstIterationEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::isLastIteration()':
Time_Setup.cpp:(.text._ZN4Task15isLastIterationEv+0x0): multiple definition of `Task::isLastIteration()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task15isLastIterationEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::Scheduler()':
Time_Setup.cpp:(.text._ZN9SchedulerC2Ev+0x0): multiple definition of `Scheduler::Scheduler()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9SchedulerC2Ev+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::Scheduler()':
Time_Setup.cpp:(.text._ZN9SchedulerC2Ev+0x0): multiple definition of `Scheduler::Scheduler()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9SchedulerC2Ev+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::init()':
Time_Setup.cpp:(.text._ZN9Scheduler4initEv+0x0): multiple definition of `Scheduler::init()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler4initEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::addTask(Task&)':
Time_Setup.cpp:(.text._ZN9Scheduler7addTaskER4Task+0x0): multiple definition of `Scheduler::addTask(Task&)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler7addTaskER4Task+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), void (*)())':
Time_Setup.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): multiple definition of `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), void (*)())':
Time_Setup.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): multiple definition of `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::deleteTask(Task&)':
Time_Setup.cpp:(.text._ZN9Scheduler10deleteTaskER4Task+0x0): multiple definition of `Scheduler::deleteTask(Task&)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler10deleteTaskER4Task+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::~Task()':
Time_Setup.cpp:(.text._ZN4TaskD2Ev+0xc): multiple definition of `Task::~Task()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskD2Ev+0xc): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::~Task()':
Time_Setup.cpp:(.text._ZN4TaskD2Ev+0xc): multiple definition of `Task::~Task()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskD2Ev+0xc): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Task::~Task()':
Time_Setup.cpp:(.text._ZN4TaskD0Ev+0x8): multiple definition of `Task::~Task()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskD0Ev+0x8): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::disableAll()':
Time_Setup.cpp:(.text._ZN9Scheduler10disableAllEv+0x4): multiple definition of `Scheduler::disableAll()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler10disableAllEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::enableAll()':
Time_Setup.cpp:(.text._ZN9Scheduler9enableAllEv+0x4): multiple definition of `Scheduler::enableAll()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler9enableAllEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::startNow()':
Time_Setup.cpp:(.text._ZN9Scheduler8startNowEv+0x4): multiple definition of `Scheduler::startNow()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler8startNowEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::timeUntilNextIteration(Task&)':
Time_Setup.cpp:(.text._ZN9Scheduler22timeUntilNextIterationER4Task+0x4): multiple definition of `Scheduler::timeUntilNextIteration(Task&)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler22timeUntilNextIterationER4Task+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::currentTask()':
Time_Setup.cpp:(.text._ZN9Scheduler11currentTaskEv+0x0): multiple definition of `Scheduler::currentTask()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler11currentTaskEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::getCurrentTask()':
Time_Setup.cpp:(.text._ZN9Scheduler14getCurrentTaskEv+0x0): multiple definition of `Scheduler::getCurrentTask()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler14getCurrentTaskEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o: in function `Scheduler::execute()':
Time_Setup.cpp:(.text._ZN9Scheduler7executeEv+0xc): multiple definition of `Scheduler::execute()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler7executeEv+0xc): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::isEnabled()':
WiFi_Setup.cpp:(.text._ZN4Task9isEnabledEv+0x0): multiple definition of `Task::isEnabled()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task9isEnabledEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::getInterval()':
WiFi_Setup.cpp:(.text._ZN4Task11getIntervalEv+0x0): multiple definition of `Task::getInterval()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11getIntervalEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::getIterations()':
WiFi_Setup.cpp:(.text._ZN4Task13getIterationsEv+0x0): multiple definition of `Task::getIterations()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13getIterationsEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::getRunCounter()':
WiFi_Setup.cpp:(.text._ZN4Task13getRunCounterEv+0x0): multiple definition of `Task::getRunCounter()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13getRunCounterEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::setCallback(void (*)())':
WiFi_Setup.cpp:(.text._ZN4Task11setCallbackEPFvvE+0x0): multiple definition of `Task::setCallback(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11setCallbackEPFvvE+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::setOnEnable(bool (*)())':
WiFi_Setup.cpp:(.text._ZN4Task11setOnEnableEPFbvE+0x0): multiple definition of `Task::setOnEnable(bool (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11setOnEnableEPFbvE+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::setOnDisable(void (*)())':
WiFi_Setup.cpp:(.text._ZN4Task12setOnDisableEPFvvE+0x0): multiple definition of `Task::setOnDisable(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task12setOnDisableEPFvvE+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::reset()':
WiFi_Setup.cpp:(.text._ZN4Task5resetEv+0x0): multiple definition of `Task::reset()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task5resetEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::setIterations(long)':
WiFi_Setup.cpp:(.text._ZN4Task13setIterationsEl+0x0): multiple definition of `Task::setIterations(long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13setIterationsEl+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::enable()':
WiFi_Setup.cpp:(.text._ZN4Task6enableEv+0x4): multiple definition of `Task::enable()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task6enableEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::enableIfNot()':
WiFi_Setup.cpp:(.text._ZN4Task11enableIfNotEv+0x4): multiple definition of `Task::enableIfNot()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11enableIfNotEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::delay(unsigned long)':
WiFi_Setup.cpp:(.text._ZN4Task5delayEm+0x4): multiple definition of `Task::delay(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task5delayEm+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::enableDelayed(unsigned long)':
WiFi_Setup.cpp:(.text._ZN4Task13enableDelayedEm+0x8): multiple definition of `Task::enableDelayed(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13enableDelayedEm+0x8): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::forceNextIteration()':
WiFi_Setup.cpp:(.text._ZN4Task18forceNextIterationEv+0x4): multiple definition of `Task::forceNextIteration()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task18forceNextIterationEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::yield(void (*)())':
WiFi_Setup.cpp:(.text._ZN4Task5yieldEPFvvE+0x4): multiple definition of `Task::yield(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task5yieldEPFvvE+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::yieldOnce(void (*)())':
WiFi_Setup.cpp:(.text._ZN4Task9yieldOnceEPFvvE+0x4): multiple definition of `Task::yieldOnce(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task9yieldOnceEPFvvE+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::setInterval(unsigned long)':
WiFi_Setup.cpp:(.text._ZN4Task11setIntervalEm+0x4): multiple definition of `Task::setInterval(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11setIntervalEm+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::set(unsigned long, long, void (*)(), bool (*)(), void (*)())':
WiFi_Setup.cpp:(.text._ZN4Task3setEmlPFvvEPFbvES1_+0x4): multiple definition of `Task::set(unsigned long, long, void (*)(), bool (*)(), void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task3setEmlPFvvEPFbvES1_+0x4): 
first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::disable()':
WiFi_Setup.cpp:(.text._ZN4Task7disableEv+0x0): multiple definition of `Task::disable()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task7disableEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::restart()':
WiFi_Setup.cpp:(.text._ZN4Task7restartEv+0x4): multiple definition of `Task::restart()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task7restartEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::restartDelayed(unsigned long)':
WiFi_Setup.cpp:(.text._ZN4Task14restartDelayedEm+0x4): multiple definition of `Task::restartDelayed(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task14restartDelayedEm+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::isFirstIteration()':
WiFi_Setup.cpp:(.text._ZN4Task16isFirstIterationEv+0x0): multiple definition of `Task::isFirstIteration()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task16isFirstIterationEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::isLastIteration()':
WiFi_Setup.cpp:(.text._ZN4Task15isLastIterationEv+0x0): multiple definition of `Task::isLastIteration()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task15isLastIterationEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::Scheduler()':
WiFi_Setup.cpp:(.text._ZN9SchedulerC2Ev+0x0): multiple definition of `Scheduler::Scheduler()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9SchedulerC2Ev+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::Scheduler()':
WiFi_Setup.cpp:(.text._ZN9SchedulerC2Ev+0x0): multiple definition of `Scheduler::Scheduler()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9SchedulerC2Ev+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::init()':
WiFi_Setup.cpp:(.text._ZN9Scheduler4initEv+0x0): multiple definition of `Scheduler::init()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler4initEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::addTask(Task&)':
WiFi_Setup.cpp:(.text._ZN9Scheduler7addTaskER4Task+0x0): multiple definition of `Scheduler::addTask(Task&)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler7addTaskER4Task+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e

I cannot fit all the errors onto this page it says it is too big

for a moment I will just upload time_setup.cpp I will of course upload anything else you may feel that would be helpful. Please remember that I’m very new at this so your answer needs to be at a numpty level please.

\src\WiFi_Setup.cpp.o: in function `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), void (*)())':
WiFi_Setup.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): multiple definition of `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), void (*)())':
WiFi_Setup.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): multiple definition of `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::deleteTask(Task&)':
WiFi_Setup.cpp:(.text._ZN9Scheduler10deleteTaskER4Task+0x0): multiple definition of `Scheduler::deleteTask(Task&)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler10deleteTaskER4Task+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::~Task()':
WiFi_Setup.cpp:(.text._ZN4TaskD2Ev+0xc): multiple definition of `Task::~Task()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskD2Ev+0xc): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::~Task()':
WiFi_Setup.cpp:(.text._ZN4TaskD2Ev+0xc): multiple definition of `Task::~Task()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskD2Ev+0xc): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Task::~Task()':
WiFi_Setup.cpp:(.text._ZN4TaskD0Ev+0x8): multiple definition of `Task::~Task()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskD0Ev+0x8): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::disableAll()':
WiFi_Setup.cpp:(.text._ZN9Scheduler10disableAllEv+0x4): multiple definition of `Scheduler::disableAll()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler10disableAllEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::enableAll()':
WiFi_Setup.cpp:(.text._ZN9Scheduler9enableAllEv+0x4): multiple definition of `Scheduler::enableAll()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler9enableAllEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::startNow()':
WiFi_Setup.cpp:(.text._ZN9Scheduler8startNowEv+0x4): multiple definition of `Scheduler::startNow()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler8startNowEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::timeUntilNextIteration(Task&)':
WiFi_Setup.cpp:(.text._ZN9Scheduler22timeUntilNextIterationER4Task+0x4): multiple definition of `Scheduler::timeUntilNextIteration(Task&)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler22timeUntilNextIterationER4Task+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::currentTask()':
WiFi_Setup.cpp:(.text._ZN9Scheduler11currentTaskEv+0x0): multiple definition of `Scheduler::currentTask()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler11currentTaskEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::getCurrentTask()':
WiFi_Setup.cpp:(.text._ZN9Scheduler14getCurrentTaskEv+0x0): multiple definition of `Scheduler::getCurrentTask()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler14getCurrentTaskEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\WiFi_Setup.cpp.o: in function `Scheduler::execute()':
WiFi_Setup.cpp:(.text._ZN9Scheduler7executeEv+0xc): multiple definition of `Scheduler::execute()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler7executeEv+0xc): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::isEnabled()':
main.cpp:(.text._ZN4Task9isEnabledEv+0x0): multiple definition of `Task::isEnabled()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task9isEnabledEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::getInterval()':
main.cpp:(.text._ZN4Task11getIntervalEv+0x0): multiple definition of `Task::getInterval()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11getIntervalEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::getIterations()':
main.cpp:(.text._ZN4Task13getIterationsEv+0x0): multiple definition of `Task::getIterations()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13getIterationsEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::getRunCounter()':
main.cpp:(.text._ZN4Task13getRunCounterEv+0x0): multiple definition of `Task::getRunCounter()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13getRunCounterEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::setCallback(void (*)())':
main.cpp:(.text._ZN4Task11setCallbackEPFvvE+0x0): multiple definition of `Task::setCallback(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11setCallbackEPFvvE+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::setOnEnable(bool (*)())':
main.cpp:(.text._ZN4Task11setOnEnableEPFbvE+0x0): multiple definition of `Task::setOnEnable(bool (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11setOnEnableEPFbvE+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::setOnDisable(void (*)())':
main.cpp:(.text._ZN4Task12setOnDisableEPFvvE+0x0): multiple definition of `Task::setOnDisable(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task12setOnDisableEPFvvE+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::reset()':
main.cpp:(.text._ZN4Task5resetEv+0x0): multiple definition of `Task::reset()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task5resetEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::setIterations(long)':
main.cpp:(.text._ZN4Task13setIterationsEl+0x0): multiple definition of `Task::setIterations(long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13setIterationsEl+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::enable()':
main.cpp:(.text._ZN4Task6enableEv+0x4): multiple definition of `Task::enable()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task6enableEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::enableIfNot()':
main.cpp:(.text._ZN4Task11enableIfNotEv+0x4): multiple definition of `Task::enableIfNot()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11enableIfNotEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::delay(unsigned long)':
main.cpp:(.text._ZN4Task5delayEm+0x4): multiple definition of `Task::delay(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task5delayEm+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::enableDelayed(unsigned long)':
main.cpp:(.text._ZN4Task13enableDelayedEm+0x8): multiple definition of `Task::enableDelayed(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task13enableDelayedEm+0x8): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::forceNextIteration()':
main.cpp:(.text._ZN4Task18forceNextIterationEv+0x4): multiple definition of `Task::forceNextIteration()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task18forceNextIterationEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::yield(void (*)())':
main.cpp:(.text._ZN4Task5yieldEPFvvE+0x4): multiple definition of `Task::yield(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task5yieldEPFvvE+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::yieldOnce(void (*)())':
main.cpp:(.text._ZN4Task9yieldOnceEPFvvE+0x4): multiple definition of `Task::yieldOnce(void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task9yieldOnceEPFvvE+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::setInterval(unsigned long)':
main.cpp:(.text._ZN4Task11setIntervalEm+0x4): multiple definition of `Task::setInterval(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task11setIntervalEm+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::set(unsigned long, long, void (*)(), bool (*)(), void (*)())':      
main.cpp:(.text._ZN4Task3setEmlPFvvEPFbvES1_+0x4): multiple definition of `Task::set(unsigned long, long, void (*)(), bool (*)(), void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task3setEmlPFvvEPFbvES1_+0x4): first 
defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::disable()':
main.cpp:(.text._ZN4Task7disableEv+0x0): multiple definition of `Task::disable()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task7disableEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::restart()':
main.cpp:(.text._ZN4Task7restartEv+0x4): multiple definition of `Task::restart()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task7restartEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::restartDelayed(unsigned long)':
main.cpp:(.text._ZN4Task14restartDelayedEm+0x4): multiple definition of `Task::restartDelayed(unsigned long)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task14restartDelayedEm+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::isFirstIteration()':
main.cpp:(.text._ZN4Task16isFirstIterationEv+0x0): multiple definition of `Task::isFirstIteration()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task16isFirstIterationEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::isLastIteration()':
main.cpp:(.text._ZN4Task15isLastIterationEv+0x0): multiple definition of `Task::isLastIteration()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4Task15isLastIterationEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::Scheduler()':
main.cpp:(.text._ZN9SchedulerC2Ev+0x0): multiple definition of `Scheduler::Scheduler()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9SchedulerC2Ev+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::Scheduler()':
main.cpp:(.text._ZN9SchedulerC2Ev+0x0): multiple definition of `Scheduler::Scheduler()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9SchedulerC2Ev+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::init()':
main.cpp:(.text._ZN9Scheduler4initEv+0x0): multiple definition of `Scheduler::init()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler4initEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::addTask(Task&)':
main.cpp:(.text._ZN9Scheduler7addTaskER4Task+0x0): multiple definition of `Scheduler::addTask(Task&)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler7addTaskER4Task+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), 
void (*)())':
main.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): multiple definition of `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), 
void (*)())':
main.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): multiple definition of `Task::Task(unsigned long, long, void (*)(), Scheduler*, bool, bool (*)(), void (*)())'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskC2EmlPFvvEP9SchedulerbPFbvES1_+0x14): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::deleteTask(Task&)':
main.cpp:(.text._ZN9Scheduler10deleteTaskER4Task+0x0): multiple definition of `Scheduler::deleteTask(Task&)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler10deleteTaskER4Task+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::~Task()':
main.cpp:(.text._ZN4TaskD2Ev+0xc): multiple definition of `Task::~Task()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskD2Ev+0xc): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::~Task()':
main.cpp:(.text._ZN4TaskD2Ev+0xc): multiple definition of `Task::~Task()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskD2Ev+0xc): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Task::~Task()':
main.cpp:(.text._ZN4TaskD0Ev+0x8): multiple definition of `Task::~Task()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN4TaskD0Ev+0x8): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::disableAll()':
main.cpp:(.text._ZN9Scheduler10disableAllEv+0x4): multiple definition of `Scheduler::disableAll()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler10disableAllEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::enableAll()':
main.cpp:(.text._ZN9Scheduler9enableAllEv+0x4): multiple definition of `Scheduler::enableAll()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler9enableAllEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::startNow()':
main.cpp:(.text._ZN9Scheduler8startNowEv+0x4): multiple definition of `Scheduler::startNow()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler8startNowEv+0x4): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::timeUntilNextIteration(Task&)':
main.cpp:(.text._ZN9Scheduler22timeUntilNextIterationER4Task+0x4): multiple definition of `Scheduler::timeUntilNextIteration(Task&)'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler22timeUntilNextIterationER4Task+0x4): 
first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::currentTask()':
main.cpp:(.text._ZN9Scheduler11currentTaskEv+0x0): multiple definition of `Scheduler::currentTask()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler11currentTaskEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::getCurrentTask()':
main.cpp:(.text._ZN9Scheduler14getCurrentTaskEv+0x0): multiple definition of `Scheduler::getCurrentTask()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler14getCurrentTaskEv+0x0): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\main.cpp.o: in function `Scheduler::execute()':
main.cpp:(.text._ZN9Scheduler7executeEv+0xc): multiple definition of `Scheduler::execute()'; .pio\build\esp12e\src\Display_Setup.cpp.o:Display_Setup.cpp:(.text._ZN9Scheduler7executeEv+0xc): first defined here
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o:(.text._Z8Run_Timev+0x0): undefined reference to `day_output'
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o:(.text._Z8Run_Timev+0x8): undefined reference to `hour_output'
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o:(.text._Z8Run_Timev+0x10): undefined reference to `month_output'
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o:(.text._Z8Run_Timev+0x18): undefined reference to `year_output'
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\esp12e\firmware.elf] Error 1
================================================= [FAILED] Took 2.88 seconds =================================================
The terminal process "C:\Users\Paul\.platformio\penv\Scripts\pio.exe 'run'" terminated with exit code: 1.```
  #ifndef Time_Setup_H
  #define Time_Setup_H

  #include <Arduino.h>
  #include <time.h>
  #include "main_Setup.h"

  extern char time_output[30]; //Time output
  extern char hour_output[12];
  extern char day_output[12];
  extern char month_output[12];
  extern char year_output[5];

  extern String Date_str;        //Strings to hold time
  extern String Time_str;
  extern String Month_str;
  extern String Year_str;

  extern int local_Unix_time;      //Local time variable must be a signed integer
  extern int n;
  extern long rssi;

  void Time_Update();
  void Run_Time();
  void Time_Setup();
  


#endif

Time_Setup.cpp

  #include <Arduino.h>
  #include "main_Setup.h"

  //char time_output[30]; //Time output
  //char hour_output[12];
  //char day_output[12];
  //char month_output[12];
  //char year_output[5];

  String Date_str;        //Strings to hold time
  String Time_str;
  String Month_str;
  String Year_str;
  int n;
  int local_Unix_time = 0;
//######################################################################################################
  void Time_Setup(){
  configTime(0, 0, "pool.ntp.org", "time.nist.gov");
  // See https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv for Timezone codes for your region
  setenv("TZ", "GMT0BST,M3.5.0/01,M10.5.0/02", 1);
  delay(1000); // Wait for time services
  time_t now;
  time(&now);
  delay(1000);
  while (now<=1607372135){
    now = time(nullptr);
    Lcd_Print_Connecting_to_time_server();
    n++;
    delay(2000);
  }  
  local_Unix_time = now + 2; // The addition of 1 counters the NTP setup time delay
  }
//####################################################################################################
  void Run_Time(){
  time_t now;
  local_Unix_time++;
  now = local_Unix_time;
  //See http://www.cplusplus.com/reference/ctime/strftime/
  strftime(day_output, 12, "%A   ", localtime(&now)); // Formats date as: Sat 24-Jun-17
  strftime(hour_output, 12, "%r", localtime(&now));    // Formats time as: 14:05:49
  strftime(month_output, 12, "%B", localtime(&now));
  strftime(year_output, 12, "%Y", localtime(&now));
  Date_str = day_output;
  Time_str = hour_output;
  Month_str = month_output;
  Year_str = year_output;
  Lcd_Print_Time();
}
//######################################################################################################
void Time_Update(){
  time_t now;
  time(&now);
  Serial.println("Synchronising local time, time error was: "+String(now-local_Unix_time));
  local_Unix_time = now;
}

Here is the complete working programme before I started trying to tidy it up.

#include <ESP8266WiFi.h> // or #include <WiFI.h> for ESP32
#include <TaskScheduler.h>
#include <LiquidCrystal_I2C.h>
#include "Wire.h"
#include <time.h>

extern LiquidCrystal_I2C lcd;
String get_time();
void Run_Time();
void Time_Update();

char time_output[30];
char hour_output[30];
char day_output[30];
String Date_str;
String Time_str;

unsigned int local_Unix_time = 0;

Scheduler ts;
LiquidCrystal_I2C lcd(0x3f,20,4);
const char* WLAN_SSID = "BTHub6-3CXG";
const char* WLAN_PASSWD = "*****";
Task Run_Time1(1000, TASK_FOREVER,&Run_Time,&ts,true);
Task Time_Update1(1* TASK_MINUTE, TASK_FOREVER,&Time_Update,&ts,true);

//#######################################################################################
void setup(){
  Serial.begin(115200);
  lcd.init();
  lcd.backlight();
  lcd.home();
  
  WiFi.begin(WLAN_SSID,WLAN_PASSWD);
  configTime(0, 0, "pool.ntp.org", "time.nist.gov");
  // See https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv for Timezone codes for your region
  setenv("TZ", "GMT0BST,M3.5.0/01,M10.5.0/02", 1);
  delay(1000); // Wait for time services
  time_t now;
  time(&now);
  local_Unix_time = now + 1; // The addition of 1 counters the NTP setup time delay
    
  Time_Update1.enableDelayed();
}

void loop(){
  ts.execute();
}
//###############################################################################################
String get_time(){
  time_t now;
  Serial.println("Synchronising local time, time error was: "+String(now-local_Unix_time));
  local_Unix_time++;
  now = local_Unix_time;
  //See http://www.cplusplus.com/reference/ctime/strftime/
  char hour_output[30], day_output[30];
  strftime(day_output, 30, "%a  %d-%m-%y", localtime(&now)); // Formats date as: Sat 24-Jun-17
  strftime(hour_output, 30, "%T", localtime(&now));    // Formats time as: 14:05:49
  Date_str = day_output;
  Time_str = hour_output;
}
//######################################################################################################
void Run_Time(){
  //time_t now;
  Serial.println(get_time());
  //Serial.println(now);
 
  lcd.home();  
  lcd.print(Time_str);
}
//######################################################################################################
void Time_Update(){
  time_t now;
  time(&now);
  local_Unix_time = now;
}

The error message says that the implementation of the Task class was duplicated, from the files WiFi_Setup.cpp and Display_Setup.cpp. Same goes for the Scheduler class

I suspect that you have done the Task and Scheduler class implemenetation in a header files which are not properly guarded and included by these two cpp files at once, so a duplication happened.

Where are these Task and Scheduler classes implemented? Instead of pasting the code directly, can you upload the whole project to e.g. Github?

All very new here I tried to create a file repository I hope it works.
Here is the address:

The problem is not in those source files. Where is the implementation for

sourced? External lib? There’s no platformio.ini there.

Sorry here it is

;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:esp12e]
platform = espressif8266
board = esp12e
framework = arduino
;upload_port = COM6
upload_speed=921600
monitor_speed = 115200
;upload_protocol = espota
;upload_port=192.168.1.208
lib_deps=
   TaskScheduler
   LiquidCrystal_I2C

Yeah the problem is with the TaskScheduler library. Your code is split perfectly fine, but the library never expects to be included from more than one cpp file in the standard case. This is also reflected in TaskScheduler seems not compatible with multiple object source files (aka tabs in IDE) · Issue #15 · arkhipenko/TaskScheduler · GitHub.

The fix is that the library can be configured to do inline functions.

can you change the main_Setup.h from

  #include <TaskScheduler.h>

to

  #define _TASK_INLINE
  #include <TaskScheduler.h>

and retry?

You’ve done it again I still think we should change your name to something like wizard. I will never have found that in a million years.

All I got find now is what I’ve done wrong here:

Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp12e.html
PLATFORM: Espressif 8266 (2.6.2) > Espressif ESP8266 ESP-12E
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:
 - framework-arduinoespressif8266 3.20704.0 (2.7.4)
 - tool-esptool 1.413.0 (4.13)
 - tool-esptoolpy 1.20800.0 (2.8.0)
 - tool-mklittlefs 1.203.200522 (2.3)
 - tool-mkspiffs 1.200.0 (2.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 31 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <TaskScheduler> 3.2.0
|-- <LiquidCrystal_I2C> 1.1.4
|   |-- <Wire> 1.0
|-- <ESP8266WiFi> 1.0
Building in release mode
Linking .pio\build\esp12e\firmware.elf
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o:(.text._Z8Run_Timev+0x0): undefined reference to `day_output'
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o:(.text._Z8Run_Timev+0x8): undefined reference to `hour_output'
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o:(.text._Z8Run_Timev+0x10): undefined reference to `month_output'
c:/users/paul/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\esp12e\src\Time_Setup.cpp.o:(.text._Z8Run_Timev+0x18): undefined reference to `year_output'

How can it be undefined when it’s clearly defined?

Undefined references always mean that you referenced something which was never created after all. In your case the day_output variable and friends which are declared here (which is correct)

You meant to instantiate / define these arrays in the CPP file (which is correct) but then you… commented it out?

Just uncomment that and it’ll work.

Thank you again Maxgerhardt
I once said that I owe you a pint I think now I owe you a whole barrel.
PS
off subject where have they hidden the IntelliSense button?

Flash: [===       ]  27.4% (used 286456 bytes from 1044464 bytes)
================================================ [SUCCESS] Took 3.02 seconds ================================================

Terminal will be reused by tasks, press any key to close it.

What is that button supposed to do? Not sure what you mean here :smiley:

It’s just used to rebuild /repair/replace the IntelliSense file
it used to be under the alien face and I thought in the section called miscellaneous.
But is not there anymore

It should be there.

grafik

Double check that you’re in the “Default” environment.

If in doubt, execute “Upgrade PlatformIO core” and “Platform Updates” in the Quick Access section to update everything…

Amazing what a quick update will do all back now. I think it’s connected with the problem I had opening platformio automatically.
After going through all your suggestion it still doesn’t work. Makes it a bit awkward creating new projects, but using the add folder button allows you to load existing projects ok.

Thank you again for your help have a very good evening