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 OS/2 or Windows. | |
L2002 | fixup overflow at number in segment segment |
This error message will be followed by either
target external symbol |
|
or
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 to be 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 compiler error. | |
Note the circumstances of the error and notify Microsoft Corporation by following the instructions on 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 eight 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 compiler error. | |
Note the circumstances of the error and notify Microsoft Corporation by following the instructions on 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 function or data item is undefined. | |
L2023 | entry (alias internalname) : export imported |
The internal name of the given exported function or data item conflicts with the internal name of a previously imported function 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 total size of data declared in DGROUP, plus the value given in HEAPSIZE in the module-definition file, plus the stack size given by the /STACK option or STACKSIZE module-definition file statement, exceeds 64K. | |
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, then a list of object modules that contain references to this symbol. This message and the list 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. | |
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 OS/2 protected mode. | |
The error message may be disabled by including the REALMODE statement in the module-definition 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 start-up 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 module QUICKLIB.OBJ was missing. | |
The module 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. | |
L2045 | segment : segment with > 1 class name not allowed with /INCR |
The program defined a segment more than once, giving the segment different class names. This is incompatible with the /INCR option. This error appears only with assembly-language programs. | |
For example, the following two statements define two distinct segments with the same name but different classes:
_BSS segment 'BSS' _BSS segment 'DATA' |
|
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 the Microsoft Overlay Manager module was not found. This module is defined in the default library. | |
L2049 | no segments defined |
No code or initialized data was defined in the program. The resulting executable file is not likely to be valid. | |
L2050 | USE16/USE32 attribute conflict - segment segment in group group |
16-bit segments cannot be grouped with 32-bit segments. | |
L2051 | start address not equal to 0x100 for /TINY |
The program starting address, as specified in the .COM file, must have a starting value equal to 100 hexadecimal (0x100 or 0x0). Any other value is illegal. | |
Put the following line of assembly source code in front of the code segment:
ORG 100h |
|
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, then a list of object modules that contain references to this symbol. The error message and the list 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. |