Keil™, An ARM® Company

Technical Support

BL51: ERROR L103 (EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC)


Information in this article applies to:

  • C51 Version 6.03

SYMPTOMS

When I compile and link my program, I receive the following error message from the linker:

*** ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC
    SYMBOL:  JUNK_TBL
    MODULE:  myfile.obj (MYFILE)

I have a global variable declared as follows:

code BYTE const JUNK_tbl[]

and an external definition declared as follows:

extern const BYTE JUNK_tbl[]

CAUSE

The problem is that the variable is declared to reside in CODE memory and the external reference declares that the variable resides in the default variable space (which is DATA, PDATA, or XDATA).

RESOLUTION

Change your extern declaration to match the variable declaration. For example:

extern code BYTE const JUNK_tbl[]

MORE INFORMATION

FORUM THREADS

The following Discussion Forum threads may provide information related to this topic.

Last Reviewed: Tuesday, July 19, 2005


Did this article provide the answer you needed?
 
Yes
No
Not Sure