L2029 on __edata and __end May Be Caused by Old LinkerLast reviewed: July 17, 1997Article ID: Q85495 |
7.00 | 1.00 1.50
MS-DOS | WIDOWS
kbtool
The information in this article applies to:
The Linker (LINK.EXE) included with - Microsoft C/C++ for MS-DOS, version 7.0 - Microsoft Visual C++ for Windows, versions 1.0 and 1.5
SUMMARYThe following error may be generated when using a linker other than the Microsoft Segmented-Executable Linker (LINK) version 5.3 or 5.5:
error L2029: '__edata' : unresolved external error L2029: '__end' : unresolved external MORE INFORMATIONLINK version 5.3 or 5.5 creates the two symbols __edata and __end when the LINK option /DOSSEG is used. If a program is compiled by a Microsoft high-level language compiler, or if an assembly program written in Microsoft MASM uses the .DOSSEG directive, LINK uses the /DOSSEG option automatically. LINK gives __edata the address of the beginning of BSS segment and gives __end the address of the end of BSS segment. Because the STACK segment is directly above the BSS segment, the address of __end also marks the lowest address of the STACK segment. In earlier versions of LINK, these two symbols are _edata and _end. An extra underscore was added to these symbols to comply with the ANSI standard. Because the C/C++ startup code references __edata and __end, they are unresolved when using earlier linkers.
|
Additional reference words: kbinf 5.30
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |