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. |