NMAKE, EXEHDR, and LIB Fatal Error Messages

Number NMAKE, EXEHDR, and LIB Fatal Error Message

U1000syntax error : ')' missing in macro invocation  
  A left parenthesis, (, appeared without a matching right parenthesis, ), in a macro invocation. The correct form is $(name), and $n is allowed for one-character names.
U1001syntax error : illegal character character in macro  
  The given character appeared in a macro but was not a letter, number, or underscore (_).
  If the colon (:) is omitted in a macro expansion, the following error occurs:

syntax error : illegal character '=' in macro

U1002syntax error : invalid macro invocation '$'  
  A single dollar sign ($) appeared without a macro name associated with it.
  The correct form is $(name). To specify a dollar sign, use a double dollar sign ($$) or precede it with a caret (^).
U1003syntax error : '=' missing in macro substitution  
  A macro invocation contained a colon (:), which begins a substitution, but it did not contain an equal sign (=).
  The correct form is:

$(macroname:oldstring=newstring)

U1004syntax error : macro name missing  
  One of the following occurred:

The name of a macro being defined was itself a macro invocation that expanded to nothing. For example, if the macro named ONE is undefined or has a null value, the following macro definition causes this error:

$(ONE)=TWOA macro invocation did not specify a name in the parentheses. The following specification causes this error:

$()

The correct form is:

$(name)

U1005syntax error : text must follow ':' in macro  
  A string substitution was specified for a macro, but the string to be changed in the macro was not specified.
U1006syntax error : missing closing double quotation mark  
  An opening double quotation mark (") appeared without a closing double quotation mark.
U1007double quotation mark not allowed in name  
  The specified target name or filename contained a double quotation mark (").
  Double quotation marks can surround a filename but cannot be contained within it.
U1017unknown directive !directive  
  The specified directive is not one of the recognized directives.
U1018directive and/or expression part missing  
  The directive was incompletely specified.
  The expression part of the directive is required.
U1019too many nested !IF blocks  
  The limit on nesting of !IF directives was exceeded.
  The !IF preprocessing directives include !IF, !IFDEF, !IFNDEF, !ELSE IF, !ELSE IFDEF, and !ELSE IFNDEF.
U1020end-of-file found before next directive  
  An expected directive was missing.
  For example, an !IF was not followed by an !ENDIF.
U1021syntax error : !ELSE unexpected  
  An !ELSE directive was found that was not preceded by an !IF directive, or the directive was placed in a syntactically incorrect place.
  The !IF preprocessing directives include !IF, !IFDEF, !IFNDEF, !ELSE IF, !ELSE IFDEF, and !ELSE IFNDEF.
U1022missing terminating character for string/program invocation : char  
  The closing double quotation mark (") in a string comparison in a directive was missing, or the closing bracket (]) in a program invocation in a directive was missing.
U1023syntax error in expression  
  An expression was invalid.
  Check the allowed operators and operator precedence.
U1024illegal argument to !CMDSWITCHES  
  An unrecognized command switch was specified.
U1031filename missing (or macro is null)  
  An !INCLUDE directive was found, but the name of the file to be included was missing or a macro representing the filename expanded to nothing.
U1033syntax error : string unexpected  
  The given string is not part of the valid syntax for a makefile.
  The following are examples of causes and results of this error:

If the closing set of angle brackets for an inline file are not at the beginning of a line, the following error occurs:

syntax error : 'EOF' unexpectedIf a macro definition in the makefile contained an equal sign (=) without a preceding name or if the name being defined is a macro that expands to nothing, the following error occurs:

syntax error : '=' unexpectedIf the semicolon (;) in a comment line in TOOLS.INI is not at the beginning of the line, the following error occurs:

syntax error : ';' unexpectedIf the makefile has been formatted by a word processor, the following error can occur:

syntax error : ':' unexpected

U1034syntax error : separator missing  
  The colon (:) that separates targets and dependents is missing.
U1035syntax error : expected ':' or '=' separator  
  Either a colon (:) or an equal sign (=) was expected.
  Possible causes include the following:

A target was not followed by a colon.

A single-letter target was followed by a colon and no space (such as a:). NMAKE interpreted it as a drive specification.

An inference rule was not followed by a colon.

A macro definition was not followed by an equal sign.

A character followed a backslash (\) that was used to continue a command to a new line.

A string appeared that did not follow any NMAKE syntax rule.

The makefile was formatted by a word processor.

U1036syntax error : too many names to left of '='  
  Only one string is allowed to the left of a macro definition.
U1037syntax error : target name missing  
  A colon (:) was found before a target name was found.
  At least one target is required.
U1038internal error : lexer  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1039internal error : parser  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1040internal error : macro expansion  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1041internal error : target building  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1042internal error : expression stack overflow  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1043internal error : temp file limit exceeded  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1045spawn failed : message  
  A program or command, called by NMAKE, failed for the given reason.
U1047argument before ')' expands to nothing  
  The parentheses following the preprocessing operator DEFINED or EXIST either were empty or contained an argument that evaluated to a null string.
U1048cannot write to file filename  
  NMAKE could not write to the given file.
  One cause of this error is a read-only file specified with /X.
U1049macro or inline file too long (maximum : 64K)  
  An inline file or a macro exceeded the limit of 64K.
U1050user-specified text  
  The message specified with the !ERROR directive was displayed.
U1051out of memory  
  The makefile was too large or complex for available memory.
U1052file filename not found  
  NMAKE could not find the given file, which was specified with one of the following:

The /F option

The !INCLUDE preprocessing directive

The at sign (@) specifier for a response file

  Check that the file exists and the filename is spelled correctly.
U1053file filename unreadable  
  The file cannot be read.
  One of the following may be a cause:

The file is in use by another process.

A bad area exists on disk.

A bad file-allocation table exists.

U1054cannot create inline file filename  
  NMAKE failed to create the given inline file.
  One of the following may be a cause:

A file by that name exists with a read-only attribute.

The disk is full.

U1055out of environment space  
  The operating system ran out of room for environment variables.
  Either increase the environment space or set fewer environment variables.
U1056cannot find command processor  
  The command processor was not in the path specified in the COMSPEC or PATH environment variables.
  NMAKE uses COMMAND.COM or CMD.EXE as a command processor when executing commands. It looks for the command processor first in the path set in COMSPEC. If COMSPEC does not exist, NMAKE searches the directories specified in PATH.
U1057cannot delete temporary file filename  
  NMAKE failed to delete the temporary inline file.
U1058terminated by user  
  NMAKE was halted by CTRL+C or CTRL+BREAK.
U1060unable to close file : filename  
  NMAKE encountered an error while closing a file.
  One of the following may be a cause:

The file is a read-only file.

There is a locking or sharing violation.

The disk is full.

U1061/F option requires a filename  
  The /F command-line option must be followed by either a makefile name or a dash (), which represents standard input.
U1062missing filename with /X option  
  The /X command-line option requires the name of the file to which diagnostic error output should be redirected.
  To use standard output, specify '-' as the output filename.
U1063missing macro name before '='  
  A macro definition on the NMAKE command line contained an equal sign (=) without a preceding name.
  This error can occur if the macro name being defined is itself a macro that expands to nothing.
U1064MAKEFILE not found and no target specified  
  The NMAKE command line did not specify a makefile or a target, and the current directory did not contain a file named MAKEFILE.
  NMAKE requires either a makefile or a command-line target. To make a makefile available to NMAKE, either specify the /F option or place a file named MAKEFILE in the current directory. NMAKE can create a command-line target by using an inference rule if a makefile is not provided.
U1065invalid option option  
  The specified option is not a valid option for NMAKE.
U1069no match found for wildcard filename  
  There is no file that matches the given filename, which was specified using one or more wildcards (* and ?).
  A target file specified using a wildcard must exist on disk.
U1070cycle in macro definition macroname  
  The given macro definition contained a macro whose definition contained the given macro. Circular macro definitions are invalid.
  For example, the following macro definitions:

ONE=$(TWO)

TWO=$(ONE)

  cause the following error:

cycle in macro definition 'TWO'

U1071cycle in dependency tree for target targetname  
  A circular dependency exists in the dependency tree for the given target. The given target is a dependent of one of the dependents of the given target. Circular dependencies are invalid.
U1072cycle in include files : filename  
  The given file includes a file that eventually includes the given file. Inclusions (using the !INCLUDE preprocessing directive) cannot be circular.
U1073don't know how to make targetname  
  The specified target does not exist, and there is no command to execute or inference rule to apply.
  One of the following may be a solution:

Check the spelling of the target name.

If targetname is a pseudotarget, specify it as a target in another description block.

If targetname is a macro invocation, be sure it does not expand to a null string.

U1076name too long  
  A string exceeded one of the following limits:

A macro name cannot exceed 1024 characters.

A target name (including path) cannot exceed 256 characters.

A command cannot exceed 2048 characters.

U1077program : return code value  
  The given command or program called by NMAKE failed and returned the given exit code.
  To suppress this error and continue the NMAKE session, use the /I option, the .IGNORE dot directive, or the dash () command modifier. To continue the NMAKE session for unrelated parts of the dependency tree, use the /K option.
U1078constant overflow at expression  
  The given expression contained a constant that exceeded the range –2,147,483,648 to 2,147,483,647. The constant appeared in one of the following situations:

An expression specified with a preprocessing directive

An error level specified with the dash () command modifier

U1079illegal expression : divide by zero  
  An expression tried to divide by zero.
U1080operator and/or operand usage illegal  
  The expression incorrectly used an operator or operand.
  Check the allowed set of operators and their order of precedence.
U1081filename : program not found  
  NMAKE could not find the given program in order to run it.
  Make sure that the program is in a directory specified in the PATH environment variable and is not misspelled.
U1082command : cannot execute command; out of memory  
  There is not enough memory to execute the given command.
U1083target macro target expands to nothing  
  The given target is an invocation of a macro that has not been defined or has a null value. NMAKE cannot process a null target.
U1084cannot create temporary file filename  
  NMAKE was unable to create the temporary file it needs when it processes the makefile.
  One of the following may be a cause:

The file already exists with a read-only attribute.

There is insufficient disk space to create the file.

The directory specified in the TMP environment variable does not exist.

U1085cannot mix implicit and explicit rules  
  A target and a pair of inference-rule extensions were specified on the same line. Targets cannot be named in inference rules.
U1086inference rule cannot have dependents  
  The colon (:) in an inference rule must be followed by one of the following:

A newline character

A semicolon (;), which can be followed by a command

A number sign (#), which can be followed by a comment

U1087cannot have : and :: dependents for same target  
  A target cannot be specified in both a single-colon (:) and a double-colon (::) dependency.
  To specify a target in multiple description blocks, use :: in each dependency line.
U1088invalid separator '::' on inference rule  
  An inference rule must be followed by a single colon (:).
U1089cannot have build commands for directive targetname  
  Dot directives cannot be followed by commands. The dot directives are .IGNORE, .PRECIOUS, .SILENT, and .SUFFIXES.
U1090cannot have dependents for directive targetname  
  Dot directives cannot be followed by dependents. The dot directives are .IGNORE, .PRECIOUS, .SILENT, and .SUFFIXES.
U1092too many names in rule  
  An inference rule cannot specify more than two extensions.
U1093cannot mix dot directives  
  Multiple dot directives cannot be specified on one line. The dot directives are .IGNORE, .PRECIOUS, .SILENT, and .SUFFIXES.
U1094syntax error : only (NO)KEEP allowed here  
  Something other than KEEP or NOKEEP appeared after the closing set of angle brackets (<<) specifying an inline file. Only KEEP, NOKEEP, or a newline character may follow the angle brackets. No spaces, tabs, or other characters may appear.
  KEEP preserves the inline file on disk. NOKEEP deletes the file after the NMAKE session. The default is NOKEEP.
U1095expanded command line commandline too long  
  After macro expansion, the given command line exceeded the limit on length of command lines for the operating system.
  DOS permits up to 128 characters on a command line.
  If the command is for a program that can accept command-line input from a file, change the command and supply input from either a file on disk or an inline file. For example, LINK and LIB accept input from a response file.
U1096cannot open inline file filename  
  NMAKE could not create the given inline file.
  One of the following occurred:

The disk was full.

A file with that name exists as a read-only file.

U1097filename-parts syntax requires dependent  
  The current dependency does not have either an explicit dependent or an implicit dependent. Filename-parts syntax, which uses the percent (%) specifier, represents components of the first dependent of the current target.
U1098illegal filename-parts syntax in string  
  The given string does not contain valid filename-parts syntax.
U1099stack overflow  
  The makefile being processed was too complex for the current stack allocation in NMAKE. NMAKE has an allocation of 0x3000 (12K).
  To increase NMAKE's stack allocation, run the EXEHDR utility with a larger stack option:

EXEHDR /STACK:stacksize

  where stacksize is a number greater than the current stack allocation in NMAKE.
U1100invalid magic number number  
  EXEHDR discovered an unknown signature in the header for the file.
  The signature in the header for a file identifies the operating system under which the executable file will run.
U1101automatic data segment greater than 64K; correcting heap size  
  There was not enough space in the automatic, or default, data segment (DGROUP) to accommodate the requested new heap size. EXEHDR adjusted the heap size to the maximum available space.
  This error applies only to segmented executable files.
U1102automatic data segment greater than 64K; correcting stack size  
  There was not enough space in the automatic, or default, data segment (DGROUP) to accommodate the requested new stack size. EXEHDR adjusted the stack size to the maximum available space.
  This error applies only to segmented executable files.
U1103invalid .EXE file : actual length less than reported  
  The second and third fields in the input-file header indicate a file size greater than the actual size.
U1104cannot change load-high program  
  When the minimum allocation and the maximum allocation are both 0, the file cannot be modified.
U1105minimum allocation less than stack; correcting minimum  
  If the minimum allocation is not enough to accommodate the stack (either as originally requested or as modified with EXEHDR), the minimum allocation is adjusted.
  This error applies only to DOS programs.
U1106minimum allocation greater than maximum; correcting maximum  
  If the minimum allocation is greater than the maximum allocation, the maximum allocation value is adjusted.
  If a display of DOS header values is requested, the values shown will be the values after the packed file is expanded.
  This error applies only to DOS programs.
U1107unexpected end of resident/nonresident name table  
  While decoding run-time relocation records, EXEHDR found the end of either the resident names table or the nonresident names table. The executable file is probably corrupted.
  This error applies only to segmented executable files.
U1108unknown format of relocation records  
  EXEHDR cannot decode the information in the file header because the header is not in a standard format.
U1109illegal value argument  
  The given argument was invalid for the EXEHDR option it was specified with.
U1110malformed number number  
  A command-line option for EXEHDR required a value, but the given number was mistyped.
U1111option requires value  
  A command-line option for EXEHDR required a value, but no value was specified or the specified value was in an illegal format for the given option.
U1112value out of legal range lowerupper  
  A command-line option for EXEHDR required a value, but the specified number did not fall in the required decimal range.
U1113value out of legal range lowerupper  
  A command-line option for EXEHDR required a value, but the specified number did not fall in the required hexadecimal range.
U1114missing option value; option option ignored  
  The given command-line option for EXEHDR required a value, but nothing was specified. EXEHDR ignored the option.
U1115option option ignored  
  The given command-line option for EXEHDR was ignored. This error usually occurs with error U1116, unrecognized option.
U1116unrecognized option: option  
  A command-line option for EXEHDR was not recognized. This error usually occurs with either U1115, option ignored, or U1111, option requires value.
U1120input file missing  
  No input file was specified on the EXEHDR command line.
U1121command line too long: commandline  
  The given EXEHDR command line exceeded the limit of 512 characters.
U1130cannot read filename  
  EXEHDR could not read the input file. Either the file is missing or the file attribute is set to prevent reading.
U1131invalid .EXE file  
  The input file specified on the EXEHDR command line was not recognized as an executable file.
U1132unexpected end-of-file  
  EXEHDR found an unexpected end-of-file condition while reading the executable file. The file is probably corrupt.
U1140out of memory  
  There was not enough memory for EXEHDR to decode the header of the execut-able file.
U1150page size too small; use option /PAGE:n to increase it  
  The page size of an input library was too small, indicating an invalid input .LIB file.
U1151syntax error : illegal file specification  
  A command operator was not followed by a module name or filename.
  One possible cause of this error is an option specified with a dash () instead of a forward slash (/).
U1152syntax error : option name missing  
  A forward slash (/) appeared on the command line without an option name after it.
U1153syntax error : option value missing  
  The /PAGE option was given without a value following it.
U1154unrecognized option  
  An unrecognized name followed the option indicator (/).
  An option is specified by a forward slash (/) and a name. The name can be specified by a legal abbreviation of the full name.
U1155syntax error : illegal input  
  A specified command did not follow correct LIB syntax.
U1156syntax error  
  A specified command did not follow correct LIB syntax.
U1157comma or newline missing  
  A comma or newline character was expected in the command line but did not appear.
  One cause of this error is an incorrectly placed comma, as in the following command line:

LIB math.lib, -mod1 +mod2;

  The line must be entered as follows:

LIB math.lib -mod1 +mod2;

U1158terminator missing  
  The last line of the response file supplied to LIB did not end with a newline character.
U1161cannot rename old library  
  LIB could not rename the old library with a .BAK extension because the .BAK version already existed with read-only protection.
  Change the protection attribute on the .BAK file.
U1162cannot reopen library  
  The old library could not be reopened after it was renamed with a .BAK extension.
  One of the following may have occurred:

Another process deleted the file or changed it to read-only.

The floppy disk containing the file was removed.

A hard-disk error occurred.

U1163error writing to cross-reference file  
  The disk or root directory was full.
  Delete or move files to make space.
U1164name length exceeds 255 characters  
  A filename specified on the command line exceeded the LIB limit of 255 characters. Reduce the number of characters in the name.
U1170too many symbols  
  The number of symbols in all object files and libraries exceeded the capacity of the dictionary created by LIB.
  Create two or more smaller libraries.
U1171insufficient memory  
  LIB did not have enough memory to run.
  Remove any shells or resident programs, or add more memory.
U1172no more virtual memory  
  The LIB session required more memory than the 1-megabyte limit imposed by LIB.
  Try using the /NOE option or reducing the number of object modules.
U1173internal failure  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1174mark : not allocated  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1175free : not allocated  
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1180write to extract file failed  
  The disk or root directory was full.
  Delete or move files to make space.
U1181write to library file failed  
  The disk or root directory was full.
  Delete or move files to make space.
U1182filename : cannot create extract file  
  The disk or root directory was full, or the given extract file already existed with read-only protection.
  Make space on the disk or change the protection of the extract file.
U1183cannot open response file  
  The response file was not found.
U1184unexpected end-of-file on command input  
  An end-of-file character was received prematurely in response to a prompt.
U1185cannot create new library  
  The disk or root directory was full, or the library file already existed with read-only protection.
  Make space on the disk or change the protection of the library file.
U1186error writing to new library  
  The disk or root directory was full.
  Delete or move files to make space.
U1187cannot open temporary file VM.TMP  
  The disk or root directory was full.
  Delete or move files to make space.
U1188insufficient disk space for temporary file  
  The library manager cannot write to the virtual memory.
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1189cannot read from temporary file  
  The library manager cannot read the virtual memory.
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions in the Microsoft Product Assistance Request form at the back of one of your manuals.
U1190interrupted by user  
  LIB was interrupted with either CTRL+C or CTRL+BREAK.
U1191libraryname : cannot write to read-only file  
  Operations cannot be performed on the given library because it is marked as a read-only file.
  Change the protection attribute on the library.
U1200filename : invalid library header  
  The input library file had an invalid format.
  Either it was not a library file or it was corrupted.
U1203filename : invalid object file near location  
  The given file was not a valid object file or was corrupted at the given location.