firmwareVersion is defined as const char[] so your extern reference should also be of this or a compatible type (e.g. extern const char* firmwareVersion;).
You are missing the additional notes that are given in the raw error message output that would probably provide more clues about the reason for this error.
Thanks - if i try this change, then the error becomes
undefined reference to "firmwareVersion"
Raw Error at bottom of list
../../../build/target/user/platform-14-mlibuser.a(EEP.o): In function eepromCreateDataTable()': src/EEP.cpp:252: undefined reference to firmwareVersion'
The line number is the closing brace of the function that contains the reference to 'firmwareVersion' (not the line number of the variable usage)
Raw for EEP.cpp (no errors at the end of the block)
new -std=gnu++11 -c -o ../build/target/user/platform-14-msrc/EEP.o src/EEP.cpp
What IDE are you using?
I’d expect some more build output that may help pinpoint the root cause.
If you can share a zip file or with Web IDE a SHARE THIS REVISION link of your project (if you want in a DM) it may be easier to get to the bottom of it.