I tried removing the object code and nothing changed.
I reviewed the preprocess output and don't see anything wrong. The symbol calver shows like this...
/* 36 */ extern const uByte calver [ ]
/* 40 */ ;
and another string that works from a different .h file looks the same like this...
/* 28 */ extern const uByte swver [ ]
/* 32 */ ;
In this .c file that can't find the symbol calver, swver works fine. Here is how they are used...
cputs((const char *)swver);
cputs((const char *)calver);
Why would one of these strings work in one .h file but not the other? Could there be something about this .h file or link order that would cause this problem? I tried removing the .h file with calver and adding it back into the project, but that didn't change anything.
Still lost....please help.
Ahhh.... now we're getting somewhere.... calver in main.pre is an external reference and does not contain the data but swver has the data definition. It turns out that one of my new include files had a
#undef DECLARE
in it that was causing the problem when included in calibrations.h but wasn't include elsewhere.
Thanks a lot for the help!