This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

simple printf causes L103 linker error

I haven't received an answer that fixed my problem, so here is another example.

I have a simple printf statement that causes a L103 error. No variables declared. Includes "stdio.h" and links in C51FPL.LIB. Others LIBs don't seem to link correctly either. Code compiles fine. Anyone know what the linking problem could be?

#include "stdio.h"

main()
{ printf("12345");
}

BL51 BANKED LINKER/LOCATER V5.12
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2004

*** ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC SYMBOL: ?_PRINTF?BYTE MODULE: C51FPL.LIB (PRINTF)

Program Size: data=15.1 xdata=48 code=2562
LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 1 ERROR(S)

Parents
  • "You should leave the memory model set at small and explicitly define your large vars such as arrays and struct to xdata."

    I understand that. I can't use the small model because of the code restriction < 2K. I get IMPROPER FIXUP linker errors. I have explicitly defined most of my variables to be XDATA long ago, so that's not the issue. I simply want to use printf and sprintf in my code, but all links produce the L103 error. And, I haven't figured it out yet. Compact or large module causes same error.

    So, I found a simple snippet that produces the same error, but nobody seems to be able to figure out what the problem is. And, I'm stuck until I do.

    Sutton

Reply
  • "You should leave the memory model set at small and explicitly define your large vars such as arrays and struct to xdata."

    I understand that. I can't use the small model because of the code restriction < 2K. I get IMPROPER FIXUP linker errors. I have explicitly defined most of my variables to be XDATA long ago, so that's not the issue. I simply want to use printf and sprintf in my code, but all links produce the L103 error. And, I haven't figured it out yet. Compact or large module causes same error.

    So, I found a simple snippet that produces the same error, but nobody seems to be able to figure out what the problem is. And, I'm stuck until I do.

    Sutton

Children
  • Sutton;
    While I was typing my second post you answered my first post so we are out about 90deg at present.
    Let's review quickly.
    Set the Memory Model to Small.
    Set the Code ROM Size to Large.
    Review the Extension folder tabs for correct settings.
    What device type are you using?
    What On-Chip and/or Off Chip RAM and ROM setting do you have set-up?
    I will attempt to duplicate you problem.
    Bradford