Multiple definitions from nested includes

No. You can’t create and share a global variable this way when a header is included by multiple .cpp files. The header needs to have extern ESP8266WebServer server; here as declaration-only instead of the variable creation and you must create a .cpp file (say e.g., global_vars.cpp in which you #include <PreProcessorDefs.h> ESP8266WebServer server(80); to define the variable.

Global variable creation and sharing has been discussed over and over, e.g. A new PlatformIO user coding wrong, getting multiple definition & first defined here errors - #2 by maxgerhardt