LINK Error Messages

Number LINK Error Message

L2000 imported starting address
  The program starting address as specified in the END statement in an assembly-language file is an imported routine. This is not supported by Windows.
L2002 fixup overflow at number in segment segment
  This error message is followed by one of these strings:

target external symbol

frm seg name1, tgt seg name2, tgt offset number

  A fixup overflow is an attempted reference to code or data that is impossible because the source location (where the reference is made “from”) and the target address (where the reference is made “to”) are too far apart. Usually the problem is corrected by examining the source location.
  For information about frame and target segments, see the Microsoft MS-DOS Programmer's Reference.
L2003 near reference to far target at offset in segment segment
pos: offset target external name
  The program issued a near call or jump to a label in a different segment.
  This error occurs most often when specifically declaring an external procedure as near that should be declared as far.
  This error can be caused by compiling a small-model C program with CL's /NT option.
L2005 fixup type unsupported at number in segment segment
  A fixup type occurred that is not supported by LINK. This is probably a translator error.
  Note which translator (compiler or assembler) produced the incorrect object module and the circumstances in which it was produced. Please report this error to Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
L2010 too many fixups in LIDATA record
  The number of far relocations (pointer- or base-type) in an LIDATA record exceeds the limit imposed by LINK.
  The cause is usually a DUP statement in an assembly-language program. The limit is dynamic: a 1,024-byte buffer is shared by relocations and the contents of the LIDATA record. There are 8 bytes per relocation.
  Reduce the number of far relocations in the DUP statement.
L2011 identifier : NEAR/HUGE conflict
  Conflicting NEAR and HUGE attributes were given for a communal variable. This error can occur only with programs produced by the Microsoft FORTRAN Compiler or other compilers that support communal variables.
L2012 arrayname : array-element size mismatch
  A far communal array was declared with two or more different array-element sizes (for instance, an array was declared once as an array of characters and once as an array of real numbers). This error occurs only with the Microsoft FORTRAN Compiler and any other compiler that supports far communal arrays.
L2013 LIDATA record too large
  An LIDATA record contained more than 512 bytes. This is probably a translator error.
  Note which translator (compiler or assembler) produced the incorrect object module and the circumstances in which it was produced. Please report this error to Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
L2022 entry (alias internalname) : export undefined
  The internal name of the given exported routine or data item is undefined.
L2023 entry (alias internalname) : export imported
  The internal name of the given exported routine or data item conflicts with the internal name of a previously imported routine or data item.
L2024 symbol : special symbol already defined
  The program defined a symbol name already used by LINK for one of its own low-level symbols. For example, LINK generates special symbols used in overlay support and other operations.
  Choose another name for the symbol to avoid conflict.
L2025 symbol : symbol defined more than once
  The same symbol has been found in two different object files.
L2026 entry ordinal number, name name : multiple definitions for same ordinal
  The given exported name with the given ordinal number conflicted with a different exported name previously assigned to the same ordinal. Only one name can be associated with a particular ordinal.
L2027 name : ordinal too large for export
  The given exported name was assigned an ordinal that exceeded the limit of 65,535 (64K–1).
L2028 automatic data segment plus heap exceed 64K
  The size of the sum of the following exceeds 64K:

Data declared in DGROUP

The size of the heap specified in the HEAPSIZE statement in the module-definition (.DEF) file

The size of the stack specified in either the /STACK option or the STACKSIZE statement in the .DEF file

  Reduce near-data allocation, HEAPSIZE, or stack.
L2029 symbol : unresolved external
  A symbol was declared to be external in one or more modules, but it was not publicly defined in any module or library.
  The name of the unresolved external symbol is given, followed by a list of object modules that contain references to this symbol. This message and the list of object modules are written to the map file, if one exists.
  One cause of this error is using the /NOI option for files that use case inconsistently in identifiers.
  This error can also occur when a program compiled with C/C++ version 7.0 (or later) is linked using /NOD. The /NOD option tells LINK to ignore all default libraries named in object files. C/C++ 7.0 embeds in an object file both the name of the default run-time library and OLDNAMES.LIB. To avoid this error, either specify OLDNAMES.LIB in the libraries field or specify /NOD:library where library is the name of the default run-time library to be excluded from the search.
L2030 starting address not code (use class 'CODE')
  The program starting address, as specified in the END statement of an .ASM file, should be in a code segment. Code segments are recognized if their class name ends in “CODE”. This is an error in a segmented executable file.
  The error message can be disabled by including the REALMODE statement in the module-definition (.DEF) file.
L2041 stack plus data exceed 64K
  If the total of near data and requested stack size exceeds 64K, the program will not run correctly. LINK checks for this condition only when /DOSSEG is enabled, which is the case in the library startup module for Microsoft language libraries.
  For object modules compiled with the Microsoft C or FORTRAN optimizing compilers, recompile with the /Gt command-line option to set the data-size threshold to a smaller number.
  This is a fatal LINK error.
L2043 Quick library support module missing
  The required file QUICKLIB.OBJ was missing. QUICKLIB.OBJ must be linked in when creating a Quick library.
L2044 symbol : symbol multiply defined, use /NOE
  LINK found what it interprets as a public-symbol redefinition, probably because a symbol defined in a library was redefined.
  Relink with the /NOE option. If error L2025 results for the same symbol, then this is a genuine symbol-redefinition error.
L2046 share attribute conflict—segment segment in group group
  The given segment has a different sharing attribute than other segments that are assigned to the given group.
  All segments assigned to a group must have the same attribute, either SHARED or NONSHARED. The attributes cannot be mixed.
L2047 IOPL attribute conflict—segment segment in group group
  The specified segment is a member of the specified group but has an IOPL attribute that is different from other segments in the group.
L2048 Microsoft Overlay Manager module not found
  Overlays were designated, but an overlay manager was missing.
  By default, the overlay manager is the Microsoft Overlay Virtual Environment (MOVE). This is provided in MOVE.LIB, which is a component library of the default combined libraries provided with Microsoft C/C++ version 7.0. The error occurs when LINK cannot find the _moveinit routine.
  If the /OLDOVERLAY option is specified, the overlay manager is the Microsoft Static Overlay Manager, which is also provided in the default combined libraries.
L2050 USE16/USE32 attribute conflict—segment segment in group group
  You cannot group 16-bit segments with 32-bit segments.
L2052 symbol : unresolved external; possible calling convention mismatch
  A symbol was declared to be external in one or more modules, but LINK could not find it publicly defined in any module or library.
  The name of the unresolved external symbol is given, followed by a list of object modules that contain references to this symbol. The error message and the list of object modules are written to the map file, if one exists.
  This error occurs in a C-language program when a prototype for an externally defined function is omitted and the program is compiled with CL's /Gr option. The calling convention for __fastcall does not match the assumptions that are made when a prototype is not included for an external function.
  Either include a prototype for the function, or compile without the /Gr option.
L2057 duplicate of function with different size found; record ignored
  An inconsistent class definition was found.
  Check the include files and recompile.
L2058 different duplicate of function found; record ignored
  An inconsistent class definition was found.
  Check the include files and recompile.
L2060 size of data block associated with symbol (16-bit segment) exceeds 64K
  A class had too many virtual functions. The given symbol is the v-table for the class, in the form of a decorated name.
L2061 no space for data block associated with function inside segment segment
  The given function was allocated to the given segment, but the segment was full.
L2062 continuation of COMDAT function has conflicting attributes; record ignored
  This is a translator error.
  Note which translator (compiler or assembler) produced the incorrect object module and the circumstances in which it was produced. Please report this error to Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
L2063 function is allocated in undefined segment
  The given function was allocated to a nonexistent segment.
L2064 starting address not in the root overlay
  The segment or object file that contains the starting address for the program was placed into an overlay.
  The starting address in a C-language program is provided by the main function.