Daniel White

Please help with a very stubborn linker error

Discussion created by Daniel White on Jun 21, 2006
Latest reply on Jun 22, 2006 by Daniel White
I am getting a L1822: error that I just can't explain. I had been able to build this application earlier this morning and have tried to put everything back to that state of the last good build but I can't get rid of this error. Here is the error message...
"Link Error   : L1822: Symbol calver in file C:\firmware\duramax\63752-03\sixgun\DMLBZ\DMLBZ_Data\P&E_ICD\ObjectCode\powerup.c.o is undefined"
 
 The symbol that it says is undefined is in my calibrations.h file and looks like this...
 
#ifdef DECLARE
#define EXTERN
#else
#define EXTERN extern
#endif
 
EXTERN const   uByte  calver[]
#ifdef DECLARE
 =          "Calibration V00.00.06.00"
#endif
;
#undef DECLARE
#undef EXTERN
This header file is included in main.c like this...
#define DECLARE  //locate data
#include "calibrations.h"
The file that can't find the calver symbol is powerup.c and it includes the file like this...
#include "calibrations.h"
Is there something wrong with this "#define DECLARE" method (It worked yesterday) or is there some way I could have broken the linker when I added some files and then removed them that could cause this? I have read the manuals and tried some experiments with paths and link order that haven't helped.
 
Please help....I've been fighting with this for about 4 hours now and don't know what else to try.
 
-Dan White

Outcomes