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

C51: unresolved external warnings L1 and L2

I have an unresolved external (warnings L1 / L2) but the linker still creates a target. If I miss the warnings as they scroll past I end up with a target that will reset when it hits the reference. How can I promote the warning to an error or otherwise prevent the creation of the target?

linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: MY_TYPO_FUNCTION_NAME MODULE: myfile.obj (MYFILE)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: MY_TYPO_FUNCTION_NAME MODULE: myfile.obj (MYFILE) ADDRESS: 29A0H
Program Size: data=202.3 xdata=927 code=11390
creating hex file from "KeilPortEmulator"...
User command #1: sp8051ke -v KeilPortEmulator -s"C:\Documents and Settings\alecjames\My Documents\software\Project\Source"
HiSYMP symbol preprocessor for Keil C-51 Version V6.19
...

IDE-Version:
µVision V4.70.0.0
Copyright (C) 2013 ARM Ltd and ARM Germany GmbH. All rights reserved.

Tool Version Numbers:
Toolchain: PK51 Prof. Developers Kit Version: 9.51
Toolchain Path: C:\Keil\C51\BIN
C Compiler: C51.Exe V9.51
Assembler: A51.Exe V8.02b
Linker/Locator: BL51.Exe V6.22
Librarian: LIB51.Exe V4.29
Hex Converter: OH51.Exe V2.6
CPU DLL: S8051.DLL V3.85.0.0
Dialog DLL: DP51.DLL V2.62.0.1

thanks

  • what do you think "UNRESOLVED EXTERNAL SYMBOL" means?

  • You missed the issue Erik. He doesn't wonder about the meaning of the linker message. I want to know how he can get the linker to issue an error and fail. Instead of issuing a warning and produce a non-working binary.

    I don't think you would like a build environment that sometimes runs all the way to the end and produce an output file, even when that file is trash because of a failure earlier that may have scrolled away.

  • I agree it would be better if it was an error.

    now IMHO the real nuisance is "miss the warnings as they scroll past" I would love to see them listed at the end of the build

  • I was hoping that there was a linker directive to make L1 and L2 errors?

    This doesn't happen in the 166 or ARM tool chains

    I have a post build step (symbol processor) that hides these warnings by adding text to the build output. Maybe I could use a wide screen monitor in portrait? :)

    Thanks for you help
    A

    In the 166
    linking...
    *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL SYMBOL: PRS_SetxStatus MODULE: .\obj\transprt.obj (TRANSPRT)
    and ARM
    linking...
    ..\obj\RDE\CORTEX-M3_RTX\Rde.axf: Error: L6218E: Undefined symbol fred() (referred from profile.o).
    Target not created