ARM Technical Support Knowledge Articles

WARNING L1 (UNRESOLVED EXTERNAL) USING INLINE ASSEMBLY

Applies to: BL51 Code-banking Linker/Locator

Answer


Information in this article applies to:


QUESTION

I have a program that consists on several assembler files and a single C file that I compile with the #pragma SRC directive.

I'm receiving the following linker error messages:

WARNING L1:  UNRESOLVED EXTERNAL SYMBOL
SYMBOL:  ?C?STRCPY
MODULE:  ASDF.OBJ (ASDF)

WARNING L2:  REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL:  ?C?STRCPY
MODULE:  ASDF.OBJ (ASDF)
ADDRESS: 0223H

What am I doing wrong?

ANSWER

The linker is not finding the ?C?STRCPY segment. This has to do with the way you are creating the object files for your project.

When you compile a C file, the C compiler includes external references to the standard C library files in the OBJ file that is generated. When you use the #pragma SRC directive with a C file to generate an assembler SRC file, that information is no longer generated by the C compiler. So, you must generate it automatically (if there isn't another C file in your project that isn't compiled with the SRC directive.)

To successfully link your project, you must manually include the proper library file in your project.

MORE INFORMATION

SEE ALSO

Article last edited on: 2005-07-19 15:30:41

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential