Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Erori Fortran

Download as pdf or txt
Download as pdf or txt
You are on page 1of 141

DIGITAL Visual Fortran

Error Messages

Date: September, 1998


Software Version: DIGITAL Visual Fortran Version 6.0, Standard and Professional Editions
Operating Systems: Microsoft® Windows® 95, Windows 98, or Windows NT® Version 4

Digital Equipment Corporation


Maynard, Massachusetts

8/25/98 5:23 PM
Copyright Page

Digital Equipment Corporation makes no representations that the use of its products in the manner
described in this publication will not infringe on existing or future patent rights, nor do the descriptions
contained in this publication imply the granting of licenses to make, use, or sell equipment or software in
accordance with the description.

Possession, use, or copying of the software described in this publication is authorized only pursuant to a
valid written license from Digital or an authorized sublicensor.

Copyright © 1998, Digital Equipment Corporation, All Rights Reserved.

AlphaGeneration, DEC, DEC Fortran, DIGITAL, FX!32, OpenVMS, VAX, VAX FORTRAN, and the
DIGITAL logo are trademarks of Digital Equipment Corporation.

Acrobat and Adobe are registered trademarks of Adobe Systems Incorporated.

ActiveX, Microsoft, MS, Microsoft Press, MS-DOS, NT, PowerPoint, Visual Basic, Visual C++, Visual
J++, Visual Studio, Win32, Win32s, Windows, and Windows NT are either registered trademarks or
trademarks of Microsoft Corporation in the United States and/or other countries.

CRAY is a registered trademark of Cray Research, Inc.

IBM is a registered trademark of International Business Machines, Inc.

IEEE is a registered trademark of the Institute of Electrical and Electronics Engineers, Inc.

IMSL is a trademark of Visual Numerics, Inc.

Intel and Pentium are registered trademarks of Intel Corporation.

OpenGL is a registered trademark of Silicon Graphics, Inc.

Sun Microsystems is a registered trademark of Sun Microsystems, Inc.; Java is a trademark of Sun
Microsystems, Inc.

UNIX is a registered trademark in the United States and other countries licensed exclusively through
X/Open Company Ltd.

All other trademarks and registered trademarks are the property of their respective holders.
Contents
This document contains information on the following topics (this color denotes a link):

o Visual Fortran Run-Time Messages


o Linker Tools Messages (LNKxxxx)
o BSCMAKE Messages (BKxxxx)
o C Run-Time Errors (Rxxxx)
o CVPACK Messages (CKxxxx)
o CVTRES Messages (CVTxxxx)
o Math Messages for x86 systems (M6xxx)
o NMAKE Messages (Uxxxx)
o Profiler Messages (PRFxxxx)
o Resource Compiler Messages (RCxxxx)
o Resource Compiler Messages (RWxxxx)
Visual Fortran Run-Time Errors Page 1 of 48

Visual Fortran Run-Time Errors


This section describes Visual Fortran run-time error messages. For each error, the tables in the
following sections provide the error number, the severity code, error message text, condition symbol
name, and a detailed description of the errors.

The severity of the message determines whether program execution continues:

Severity Description

severe Must be corrected. The program’s execution is terminated when the error is
encountered, unless the program’s I/O statements use the END, EOR, or ERR branch
specifiers to transfer control, perhaps to a routine that uses the IOSTAT specifier.

error Should be corrected. The program might continue execution, but the output from this
execution may be incorrect.

warning Should be investigated. The program continues execution, but output from this
execution may be incorrect.

info For informational purposes only; the program continues.

When a severe error occurs for which no recovery method (such as ERR, END, or EOR) is specified:

l The severe error message is displayed


l A hexadecimal dump of the call stack (program counter trace) is displayed
l Program execution stops

To prevent program terminationn of a severe error, consider including an I/O error-handling specifier
(see Methods of Handling Errors).

For information about where a message is displayed (depends on the project type) and related
information, see Run-Time Message Display and Format.

The following sections describe the run-time errors in detail:

l Run-Time Errors having no numbers and errors 1 through 30


l Run-Time Errors 31 through 60
l Run-Time Errors 61 through 108
l Run-Time Errors 120 through 300
l Run-Time Errors 540 through 569
l Run-Time Errors 570 through 614
l Run-Time Errors 615 through 656
l Run-Time Errors 657 through 689
l Run-Time Errors 690 through 719
l Run-Time Errors 720 through 759

Related topics (see the Programmer’s Guide):


Visual Fortran Run-Time Errors Page 2 of 48

l Default Run-Time Error Processing

l Handling Run-Time Errors

l Locating Run-Time Errors

l Run-Time Environment Variables

l The Floating-Point Environment

Run-Time Errors Having No Numbers and Errors 1 Through


30
This section describes in detail Visual Fortran run-time errors having no numbers and run-time error
numbers 1 through 30.

In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.

The first line of the second column provides the message as it is displayed (following forrtl:),
including the severity level, message number, and the message text. The following lines of the second
column contain the status condition symbol (such as FOR$IOS_INCRECTYP) and an explanation of
the message.

For information about the severity levels, see the Introduction.

Number Severity Level, Number, and Message Text; Condition Symbol and Explanation

None¹ info: Fortran error message number is nnn

The DIGITAL Fortran message catalog file was not found on this system. This error has
no condition symbol.

None¹ warning: Could not open message catalog: for_msg.cat

The DIGITAL Fortran message catalog file was not found on this system. This error has
no condition symbol.

None¹ Insufficient memory to open Fortran RTL catalog: message 41

The DIGITAL Fortran message catalog file could not be opened because of insufficient
virtual memory. For more information, see error 41. This error has no condition symbol.

1¹ severe (1): Not a Fortran-specific error

FOR$IOS_NOTFORSPE. An error in the user program or in the RTL was not a


DIGITAL Fortran-specific error and was not reportable through any other DIGITAL
Visual Fortran Run-Time Errors Page 3 of 48

Fortran run-time messages.

8 severe (8): Internal consistency check failure

FOR$IOS_BUG_CHECK. Internal error. Please check that the program is correct.


Recompile if an error existed in the program. If this error persists, submit a problem
report.

9 severe (9): Permission to access file denied

FOR$IOS_PERACCFIL. Check the permissions of the specified file and whether the
network device is mapped and available. Make sure the correct file and device was being
accessed. Change the protection, specific file, or process used before rerunning
program.

10 severe (10): Cannot overwrite existing file

FOR$IOS_CAVOVEEXI. Specified file xxx already exists when OPEN statement


specified STATUS=’NEW’ (create new file) using I/O unitx. Make sure correct file
name, directory path, unit, and so forth were specified in the source program. Decide
whether to:

l Rename or remove the existing file before rerunning the program.


l Modify the source file to specify different file specification, I/O unit, or OPEN
statement STATUS.

11 info (11)¹: Unit not connected

FOR$IOS_UNINOTCON. The specified unit was not open at the time of the attempted
I/O operation. Check if correct unit number was specified. If appropriate, use an OPEN
statement to explicitly open the file (connect the file to the unit number).

17 severe (17): Syntax error in NAMELIST input

FOR$IOS_SYNERRNAM. The syntax of input to a namelist-directed READ statement


was incorrect.

18 severe (18): Too many values for NAMELIST variable

FOR$IOS_TOOMANVAL. An attempt was made to assign too many values to a


variable during a namelist READ statement.

19 severe (19): Invalid reference to variable in NAMELIST input

FOR$IOS_INVREFVAR. One of the following conditions occurred:

l The variable was not a member of the namelist group.


l An attempt was made to subscript a scalar variable.
l A subscript of the array variable was out-of-bounds.
Visual Fortran Run-Time Errors Page 4 of 48

l An array variable was specified with too many or too few subscripts for the
variable.
l An attempt was made to specify a substring of a noncharacter variable or array
name.
l A substring specifier of the character variable was out-of-bounds.
l A subscript or substring specifier of the variable was not an integer constant.
l An attempt was made to specify a substring by using an unsubscripted array
variable.

20 severe (20): REWIND error

FOR$IOS_REWERR. One of the following conditions occurred:

l The file was not a sequential file.


l The file was not opened for sequential or append access.
l The DIGITAL Fortran RTL I/O system detected an error condition during
execution of a REWIND statement.

21 severe (21): Duplicate file specifications

FOR$IOS_DUPFILSPE. Multiple attempts were made to specify file attributes without


an intervening close operation. A DEFINE FILE statement was followed by another
DEFINE FILE statement or an OPEN statement

22 severe (22): Input record too long

FOR$IOS_INPRECTOO. A record was read that exceeded the explicit or default


record length specified when the file was opened. To read the file, use an OPEN
statement with a RECL= value (record length) of the appropriate size.

23 severe (23): BACKSPACE error

FOR$IOS_BACERR. The DIGITAL Fortran RTL I/O system detected an error


condition during execution of a BACKSPACE statement.

24¹ severe (24): End-of-file during read

FOR$IOS_ENDDURREA. One of the following conditions occurred:

l A DIGITAL Fortran RTL I/O system end-of-file condition was encountered


during execution of a READ statement that did not contain an END, ERR, or
IOSTAT specification.
l An end-of-file record written by the ENDFILE statement was encountered
during execution of a READ statement that did not contain an END, ERR, or
IOSTAT specification.
l An attempt was made to read past the end of an internal file character string or
array during execution of a READ statement that did not contain an END, ERR,
or IOSTAT specification.
Visual Fortran Run-Time Errors Page 5 of 48

This error is returned by END and ERRSNS.

25 severe (25): Record number outside range

FOR$IOS_RECNUMOUT. A direct access READ, WRITE, or FIND statement


specified a record number outside the range specified when the file was opened.

26 severe (26): OPEN or DEFINE FILE required

FOR$IOS_OPEDEFREQ. A direct access READ, WRITE, or FIND statement was


attempted for a file when no prior DEFINE FILE or OPEN statement with
ACCESS=’DIRECT’ was performed for that file.

27 severe (27): Too many records in I/O statement

FOR$IOS_TOOMANREC. An attempt was made to do one of the following:

l Read or write more than one record with an ENCODE or DECODE statement.
l Write more records than existed.

28 severe (28): CLOSE error

FOR$IOS_CLOERR. An error condition was detected by the DIGITAL Fortran RTL


I/O system during execution of a CLOSE statement.

29 severe (29): File not found

FOR$IOS_FILNOTFOU. A file with the specified name could not be found during an
open operation.

30 severe (30): Open failure

FOR$IOS_OPEFAI. An error was detected by the DIGITAL Fortran RTL I/O system
while attempting to open a file in an OPEN, INQUIRE, or other I/O statement. This
message is issued when the error condition is not one of the more common conditions
for which specific error messages are provided. It can occur when an OPEN operation
was attempted for one of the following:

l Segmented file that was not on a disk or a raw magnetic tape


l Standard I/O file that had been closed

¹Identifies errors not returned by IOSTAT.

Run-Time Errors 31 Through 60


This section describes in detail Visual Fortran run-time errors 31 through 60.
Visual Fortran Run-Time Errors Page 6 of 48

In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.

The first line of the second column provides the message as it is displayed (following forrtl:),
including the severity level, message number, and the message text. The following lines of the second
column contain the status condition symbol (such as FOR$IOS_INCRECTYP) and an explanation of
the message.

For information about severity levels, see the Introduction.

Number Severity Level, Number, and Message Text; Condition Symbol and Explanation

31 severe (31): Mixed file access modes

FOR$IOS_MIXFILACC. An attempt was made to use any of the following


combinations:

l Formatted and unformatted operations on the same unit


l An invalid combination of access modes on a unit, such as direct and sequential
l A DIGITAL Fortran RTL I/O statement on a logical unit that was opened by a
program coded in another language

32 severe (32): Invalid logical unit number

FOR$IOS_INVLOGUNI. A logical unit number greater than 2,147,483,647 or less than


zero was used in an I/O statement.

33 severe (33): ENDFILE error

FOR$IOS_ENDFILERR. One of the following conditions occurred:

l The file was not a sequential organization file with variable-length records.
l The file was not opened for sequential or append access.
l An unformatted file did not contain segmented records.
l The DIGITAL Fortran RTL I/O system detected an error during execution of an
ENDFILE statement.

34 severe (34): Unit already open

FOR$IOS_UNIALROPE. A DEFINE FILE statement specified a logical unit that was


already opened.

35 severe (35): Segmented record format error

FOR$IOS_SEGRECFOR. An invalid segmented record control data word was detected


in an unformatted sequential file. The file was probably either created with
Visual Fortran Run-Time Errors Page 7 of 48

RECORDTYPE=’FIXED’ or ’VARIABLE’ in effect, or was created by a program


written in a language other than Fortran or Fortran 90.

36 severe (36): Attempt to access non-existent record

FOR$IOS_ATTACCNON. A direct-access READ or FIND statement attempted to


access beyond the end of a relative file (or a sequential file on disk with fixed-length
records) or access a record that was previously deleted from a relative file.

37 severe (37): Inconsistent record length

FOR$IOS_INCRECLEN. An attempt was made to open a direct access file without


specifying a record length.

38 severe (38): Error during write

FOR$IOS_ERRDURWRI. The DIGITAL Fortran RTL I/O system detected an error


condition during execution of a WRITE statement.

39 severe (39): Error during read

FOR$IOS_ERRDURREA. The DIGITAL Fortran RTL I/O system detected an error


condition during execution of a READ statement.

40 severe (40): Recursive I/O operation

FOR$IOS_RECIO_OPE. While processing an I/O statement for a logical unit, another


I/O operation on the same logical unit was attempted, such as a function subprogram
that performs I/O to the same logical unit that was referenced in an expression in an I/O
list or variable format expression.

41 severe (41): Insufficient virtual memory

FOR$IOS_INSVIRMEM. The DIGITAL Fortran RTL attempted to exceed its available


virtual memory while dynamically allocating space. To overcome this problem,
investigate increasing the data limit (Control Panel, System, Performance Tab, Virtual
Memory). Before you try to run this program again, wait until the new system resources
take effect.

42 severe (42): No such device

FOR$IOS_NO_SUCDEV. A pathname included an invalid or unknown device name


when an OPEN operation was attempted.

43 severe (43): File name specification error

FOR$IOS_FILNAMSPE. A pathname or file name given to an OPEN or INQUIRE


statement was not acceptable to the DIGITAL Fortran RTL I/O system.

44 severe (44): Inconsistent record type


Visual Fortran Run-Time Errors Page 8 of 48

FOR$IOS_INCRECTYP. The RECORDTYPE value in an OPEN statement did not


match the record type attribute of the existing file that was opened.

45 severe (45): Keyword value error in OPEN statement

FOR$IOS_KEYVALERR. An improper value was specified for an OPEN or CLOSE


statement specifier requiring a value.

46 severe (46): Inconsistent OPEN/CLOSE parameters

FOR$IOS_INCOPECLO. Specifications in an OPEN or CLOSE statement were


inconsistent. Some invalid combinations follow:

l READONLY or ACTION=’READ’ with STATUS=’NEW’ or


STATUS=’SCRATCH’
l READONLY with STATUS=’REPLACE’, ACTION=’WRITE’, or
ACTION=’READWRITE’
l ACCESS=’APPEND’ with READONLY, ACTION=’READ’, STATUS=’NEW’
or STATUS=’SCRATCH’
l DISPOSE=’SAVE’, ’PRINT’, or ’SUBMIT’ wiith STATUS=’SCRATCH’
l DISPOSE=’DELETE’ with READONLY
l CLOSE statement STATUS=’DELETE’ with OPEN statement READONLY
l ACCESS=’APPEND’ with STATUS=’REPLACE’
l ACCESS=’DIRECT’ or ’KEYED’ with POSITION=’APPEND’, ’ASIS’, or
’REWIND’

47 severe (47): Write to READONLY file

FOR$IOS_WRIREAFIL. A write operation was attempted to a file that was declared


ACTION=’READ’ or READONLY in the OPEN statement that is currently in effect.

48 severe (48): Invalid argument to Fortran Run-Time Library

FOR$IOS_INVARGFOR. The compiler passed an invalid or improperly coded


argument to the DIGITAL Fortran RTL. This can occur if the compiler is newer than
the RTL in use.

51 severe (51): Inconsistent file organization

FOR$IOS_INCFILORG. The file organization specified in an OPEN statement did not


match the organization of the existing file.

53 severe (53): No current record

FOR$IOS_NO_CURREC. Attempted to execute a REWRITE statement to rewrite a


record when the current record was undefined. To define the current record, execute a
successful READ statement. You can optionally perform an INQUIRE statement on
the logical unit after the READ statement and before the REWRITE statement. No
Visual Fortran Run-Time Errors Page 9 of 48

other operations on the logical unit may be performed between the READ and
REWRITE statements.

55 severe (55): DELETE error

FOR$IOS_DELERR. An error condition was detected by the DIGITAL Fortran RTL


I/O system during execution of a DELETE statement.

57 severe (57): FIND error

FOR$IOS_FINERR. The DIGITAL Fortran RTL I/O system detected an error


condition during execution of a FIND statement.

58¹ info (58): Format syntax error at or near xx

FOR$IOS_FMTSYN. Check the statement containing xx, a character substring from the
format string, for a format syntax error. For more information, see the FORMAT
statement.

59 severe (59): List-directed I/O syntax error

FOR$IOS_LISIO_SYN². The data in a list-directed input record had an invalid format,


or the type of the constant was incompatible with the corresponding variable. The value
of the variable was unchanged.

60 severe (60): Infinite format loop

FOR$IOS_INFFORLOO. The format associated with an I/O statement that included an


I/O list had no field descriptors to use in transferring those values.

¹Identifies errors not returned by IOSTAT.

²The ERR transfer is taken after completion of the I/O statement for error number 59. The resulting
file status and record position are the same as if no error had occurred. However, other I/O errors take
the ERR transfer as soon as the error is detected, so file status and record position are undefined.

Run-Time Errors 61 Through 108


This section describes in detail Visual Fortran run-time errors 61 through 108.

In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.

The first line of the second column provides the message as it is displayed (following forrtl:),
including the severity level, message number, and the message text. The following lines of the second
column contain the status condition symbol (such as FOR$IOS_INCRECTYP) and an explanation of
the message.

For information about the severity levels, see the Introduction.


Visual Fortran Run-Time Errors Page 10 of 48

Number Severity Level, Number, and Message Text; Condition Symbol and Explanation

61 severe or info¹ (61): Format/variable-type mismatch

FOR$IOS_FORVARMIS². An attempt was made either to read or write a real variable


with an integer field descriptor (I, L, O, Z, B), or to read or write an integer or logical
variable with a real field descriptor (D, E, or F). To suppress this error message, see the
description of /check:noformat.

62 severe (62): Syntax error in format

FOR$IOS_SYNERRFOR. A syntax error was encountered while the RTL was


processing a format stored in an array or character variable.

63 error or info¹ (63): Output conversion error

FOR$IOS_OUTCONERR². During a formatted output operation, the value of a


particular number could not be output in the specified field length without loss of
significant digits. When this situation is encountered, the overflowed field is filled with
asterisks to indicate the error in the output record. If no ERR address has been defined
for this error, the program continues after the error message is displayed. To suppress
this error message, see the description of /check:nooutput_conversion.

64 severe (64): Input conversion error

FOR$IOS_INPCONERR². During a formatted input operation, an invalid character was


detected in an input field, or the input value overflowed the range representable in the
input variable. The value of the variable was set to zero.

65 error (65): Floating invalid

FOR$IOS_FLTINV. During an arithmetic operation, the floating-point values used in a


calculation were invalid for the type of operation requested or invalid exceptional
values. For example, the error can occur if you request a log of the floating-point values
0.0 or a negative number. For certain arithmetic expressions, specifying the
/check:nopower option can suppress this message.

66 severe (66): Output statement overflows record

FOR$IOS_OUTSTAOVE. An output statement attempted to transfer more data than


would fit in the maximum record size.

67 severe (67): Input statement requires too much data

FOR$IOS_INPSTAREQ. Attempted to read more data than exists in a record with an


unformatted READ statement or with a formatted sequential READ statement from a
file opened with a PAD specifier value of 'NO'.

68 severe (68): Variable format expression value error


Visual Fortran Run-Time Errors Page 11 of 48

FOR$IOS_VFEVALERR². The value of a variable format expression was not within the
range acceptable for its intended use; for example, a field width was less than or equal to
zero. A value of 1 was assumed, except for a P edit descriptor, for which a value of zero
was assumed.

70³ severe (70): Integer overflow

FOR$IOS_INTOVF. During an arithmetic operation, an integer value exceeded byte,


word, or longword range. The result of the operation was the correct low-order part.
See the Data Representation chapter in the Programmer’s Guide for ranges of the
various integer data types. Consider specifying a larger integer data size (modify source
program or, for an INTEGER declaration, possibly use the /integer_size:size option).

71³ severe (71): Integer divide by zero

FOR$IOS_INTDIV. During an integer arithmetic operation, an attempt was made to


divide by zero. The result of the operation was set to the dividend, which is equivalent
to division by 1.

72³ error (72): Floating overflow

FOR$IOS_FLTOVF. During an arithmetic operation, a floating-point value exceeded


the largest representable value for that data type. See the Data Representation chapter in
the Programmer’s Guide for ranges of the various data types.

73³ error (73): Floating divide by zero

FOR$IOS_FLTDIV. During a floating-point arithmetic operation, an attempt was made


to divide by zero.

74³ error (74): Floating underflow

FOR$IOS_FLTUND. During an arithmetic operation, a floating-point value became less


than the smallest finite value for that data type. Depending on the values of the /fpe:n
option, the underflowed result was either set to zero or allowed to gradually underflow.
See the Data Representation chapter in the Programmer’s Guide for ranges of the
various data types.

75³ error (75): Floating point exception

FOR$IOS_SIGFPE. A floating-point exception occurred. Possible causes include:

l Division by zero
l Overflow
l An invalid operation, such as subtraction of infinite values, multiplication of zero
by infinity without signs), division of zero by zero or infinity by infinity
l Conversion of floating-point to fixed-point format when an overflow prevents
conversion
Visual Fortran Run-Time Errors Page 12 of 48

77³ severe (77): Subscript out of range

FOR$IOS_SUBRNG. An array reference was detected outside the declared array


bounds.

78³ error (78): Process killed

FOR$IOS_SIGTERM. The process received a signal requesting termination of this


process. Determine source of this software termination signal.

79³ error (79): Process quit

FOR$IOS_SIGQUIT. The process received a signal requesting termination of itself.


Determine source of this quit signal

95³ info (95): Floating-point conversion failed

FOR$IOS_FLOCONFAI. The attempted unformatted read or write of nonnative


floating-point data failed because the floating-point value:

l Exceeded the allowable maximum value for the equivalent native format and was
set equal to infinity (plus or minus)
l Was infinity (plus or minus) and was set to infinity (plus or minus)
l Was invalid and was set to not a number (NaN)

Very small numbers are set to zero (0). This error could be caused by the specified
nonnative floating-point format not matching the floating-point format found in the
specified file. Check the following:

l The correct file was specified.


l The record layout matches the format DIGITAL Fortran is expecting.
l The ranges for the data being used (see Data Representation).
l The correct nonnative floating-point data format was specified (seeConverting
Unformatted Numeric Data).

108 Severe (108): Cannot stat file

FOR$IOS_CANSTAFILE. Make sure correct file and unit were specified.

¹For errors 61 and 63, the severity depends on the /check:keywords used during compilation
command.

²The ERR transfer is taken after completion of the I/O statement for error numbers 61, 63, 64, and 68.
The resulting file status and record position are the same as if no error had occurred. However, other
I/O errors take the ERR transfer as soon as the error is detected, so file status and record position are
undefined.

³Identifies errors not returned by IOSTAT.


Visual Fortran Run-Time Errors Page 13 of 48

Run-Time Errors 120 Through 300


This section describes in detail Visual Fortran run-time errors 120 through 300.

In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.

The first line of the second column provides the message as it is displayed (following forrtl:),
including the severity level, message number, and the message text. The following lines of the second
column contain the status condition symbol (such as FOR$IOS_INCRECTYP) and an explanation of
the message.

For information about the severity levels, see the Introduction.

Number Severity Level, Number, and Message Text; Condition Symbol and Explanation

120 severe (120): Operation requires seek ability

FOR$IOS_OPEREQSEE. Attempted an operation on a file that requires the ability to


perform seek operations on that file. Make sure the correct unit, directory path, and file
were specified.

138¹ severe (138): Array index out of bounds

FOR$IOS_BRK_RANGE. An array subscript is outside the dimensioned boundaries of


that array. Recompile with the /check:bounds option set.

139¹ Severe: (139): Array index out of bounds for index nn

FOR$IOS_BRK_RANGE2. An array subscript is outside the dimensioned boundaries of


that array. Recompile with the /check:bounds option set.

140¹ severe (140): Floating inexact

FOR$IOS_FLTINE. A floating-point arithmetic or conversion operation gave a result


that differs from the mathematically exact result. This trap is reported if the rounded
result of an IEEE operation is not exact.

144¹ severe (144): Reserved operand

FOR$IOS_ROPRAND. The DIGITAL Fortran RTL encountered a reserved operand


while executing your program. Please report the problem to DIGITAL.

145¹ severe (145): Assertion error

FOR$IOS_ASSERTERR. The DIGITAL Fortran RTL encountered an assertion error.


Please report the problem to DIGITAL.
Visual Fortran Run-Time Errors Page 14 of 48

146¹ severe (146): Null pointer error

FOR$IOS_NULPTRERR. Attempted to use a pointer that does not contain an address.


Modify the source program, recompile, and relink.

147¹ severe (147): Stack overflow

FOR$IOS_STKOVF. The DIGITAL Fortran RTL encountered a stack overflow while


executing your program.

148¹ severe (148): String length error

FOR$IOS_STRLENERR. During a string operation, an integer value appears in a


context where the value of the integer is outside the permissible string length range.
Recompile with the /check:bounds option.

149¹ severe (149): Substring error

FOR$IOS_SUBSTRERR. An array subscript is outside the dimensioned boundaries of


an array. Recompile with the /check:bounds option.

150¹ severe (150): Range error

FOR$IOS_RANGEERR. An integer value appears in a context where the value of the


integer is outside the permissible range.

151¹ severe (151): Allocatable array is already allocated

FOR$IOS_INVREALLOC. An allocatable array must not already be allocated when


you attempt to allocate it. You must deallocate the array before it can again be
allocated.

152¹ severe (152): Unresolved contention for DEC Fortran RTL global resource

FOR$IOS_RESACQFAI. Failed to acquire a DIGITAL Fortran RTL global resource


for a reentrant routine. For a multithreaded program, the requested global resource is
held by a different thread in your program. For a program using asynchronous handlers,
the requested global resource is held by the calling part of the program (such as main
program) and your asynchronous handler attempted to acquire the same global resource.

153¹ severe (153): Allocatable array or pointer is not allocated

FOR$IOS_INVDEALLOC. A Fortran 90 allocatable array or pointer must already be


allocated when you attempt to deallocate it. You must allocate the array or pointer
before it can again be deallocated.

154¹ severe(154): Array index out of bounds

FOR$IOS_RANGE. An array subscript is outside the dimensioned boundaries of that


array. Recompile with the /check:bounds option set.
Visual Fortran Run-Time Errors Page 15 of 48

155¹ severe(155): Array index out of bounds for index nn

FOR$IOS_RANGE2. An array subscript is outside the dimensioned boundaries of that


array. Recompile with the /check:bounds option set.

156¹ severe(156): GENTRAP code = hex dec

FOR$IOS_DEF_GENTRAP. The DIGITAL Fortran RTL has detected an unknown


GENTRAP code. The cause is most likely a software problem due to memory
corruption, or software signalling an exception with an incorrect exception code. Try
recompiling with the /check:bounds option set to see if that finds the problem.

157¹ severe(157): Program Exception - access violation

FOR$IOS_ACCVIO. The program tried to read from or write to a virtual address for
which it does not have the appropriate access. Try recompiling with the/check:bounds
option set to see if the cause is an out-of-bounds memory reference.

This is an operating system error. See your operating system documentation for more
information.

158¹ severe(158): Program Exception - datatype misalignment

FOR$IOS_DTYPE_MISALIGN. The DIGITAL Fortran RTL has detected data that is


not aligned on a natural boundary for the data type specified. For example, a REAL(8)
data item aligned on natural boundaries has an address that is a multiple of 8. To ensure
naturally aligned data, use the /alignment option. For more information on alignment,
see Data Alignment Considerations in the Programmer’s Guide.

This is an operating system error. See your operating system documentation for more
information.

159¹ severe(159): Program Exception - breakpoint

FOR$IOS_PGM_BPT. The DIGITAL Fortran RTL has encountered a breakpoint in the


program.

This is an operating system error. See your operating system documentation for more
information.

160¹ severe(160): Program Exception - single step

FOR$IOS_PGM_SS. A trace trap or other single-instruction mechanism has signaled


that one instruction has been executed.

This is an operating system error. See your operating system documentation for more
information.

161¹ severe(161): Program Exception - array bounds exceeded


Visual Fortran Run-Time Errors Page 16 of 48

FOR$IOS_PGM_BOUNDS. The program tried to access an array element that is


outside the specified boundaries of the array. Recompile with the/check:bounds option
set.

162¹ severe(162): Program Exception - denormal floating-point operand

FOR$IOS_PGM_DENORM. A floating-point arithmetic or conversion operation has a


denormalized number as an operand. A denormalized number is smaller than the lowest
value in the normal range for the data type specified. See theData Representation
chapter in the Programmer’s Guide for ranges for floating-point types.

Either locate and correct the source code causing the denormalized value or, if a
denormalized value is acceptable, specify a different value for the /fpe compiler option
to allow program continuation.

163¹ severe(163): Program Exception - floating stack check

FOR$IOS_PGM_FLTSTK. During a floating-point operation, the floating-point


register stack on x86 systems overflowed or underflowed. This is a fatal exception most
likely caused by a compiler code generation error. Please report the problem to
DIGITAL.

164¹ severe(164): Program Exception - integer divide by zero

FOR$IOS_PGM_INTDIV. During an integer arithmetic operation, an attempt was


made to divide by zero. Locate and correct the source code causing the integer divide
by zero.

165¹ severe(165): Program Exception - integer overflow

FOR$IOS_PGM_INTOVF. During an arithmetic operation, an integer value exceeded


the largest representable value for that data type. See the Data Representation chapter in
the Programmer’s Guide for ranges for INTEGER types.

This message appears when /check:overflow was specified and an integer overflow
appears.

166¹ severe(166): Program Exception - privileged instruction

FOR$IOS_PGM_PRIVINST. The program tried to execute an instruction whose


operation is not allowed in the current machine mode.

This is an operating system error. See your operating system documentation for more
information.

167¹ severe(167): Program Exception - in page error


Visual Fortran Run-Time Errors Page 17 of 48

FOR$IOS_PGM_INPGERR. The program tried to access a page that was not present,
so the system was unable to load the page. For example, this error might occur if a
network connection was lost while trying to run a program over the network.

This is an operating system error. See your operating system documentation for more
information.

168¹ severe(168): Program Exception - illegal instruction

FOR$IOS_PGM_ILLINST. The program tried to execute an invalid instruction.

This is an operating system error. See your operating system documentation for more
information.

169¹ severe(169): Program Exception - noncontinuable exception

FOR$IOS_PGM_NOCONTEXCP. The program tried to continue execution after a


noncontinuable exception occurred. This is an operating system error. See your
operating system documentation for more information.

170¹ severe(170): Program Exception - stack overflow

FOR$IOS_PGM_STKOVF. The DIGITAL Fortran RTL has detected a stack overflow


while executing your program. See your Release Notes for information on how to
increase stack size.

171¹ severe(171): Program Exception - invalid disposition

FOR$IOS_PGM_INVDISP. An exception handler returned an invalid disposition to the


exception dispatcher. Programmers using a high-level language should never encounter
this exception.

This is an operating system error. See your operating system documentation for more
information.

172¹ severe(172): Program Exception - exception code = hex dec

FOR$IOS_PGM_EXCP_CODE. The DIGITAL Fortran RTL has detected an unknown


exception code.

This is an operating system error. See your operating system documentation for more
information.

201¹ severe (201): Intel Pentium fdiv flaw detected, please update the processor
Visual Fortran Run-Time Errors Page 18 of 48

FOR$IOS_FLAWEDPENT. The Fortran run-time system detected a flawed Pentium®


processor. Please contact Intel® to upgrade your processor. To allow program
execution to continue when this condition occurs, set the environment variable
FOR_RUN_FLAWED_PENTIUM to true and rerun the program. For more
information, see Intel Pentium Floating-Point Flaw.

256 severe (256): Unformatted I/O to unit open for formatted transfers

FOR$IOS_UNFIO_FMT. Attempted unformatted I/O to a unit where the OPEN


statement (FORM specifier) indicated the file was formatted. Check that the correct
unit (file) was specified. If the FORM specifier was not present in the OPEN statement
and the file contains unformatted data, specify FORM=’UNFORMATTED'in the
OPEN statement. Otherwise, if appropriate, use formatted I/O (such as list-directed or
namelist I/O).

257 severe (257): Formatted I/O to unit open for unformatted transfers

FOR$IOS_FMTIO_UNF. Attempted formatted I/O (such as list-directed or namelist


I/O) to a unit where the OPEN statement indicated the file was unformatted (FORM
specifier). Check that the correct unit (file) was specified. If the FORM specifier was
not present in the OPEN statement and the file contains formatted data, specify
FORM='FORMATTED' in the OPEN statement. Otherwise, if appropriate, use
unformatted I/O.

264 severe (264): operation requires file to be on disk or tape

FOR$IOS_OPEREQDIS. Attempted to use a BACKSPACE statement on such


devices as a terminal.

265 severe (265): operation requires sequential file organization and access

FOR$IOS_OPEREQSEQ. Attempted to use a BACKSPACE statement on a file


whose organization was not sequential or whose access was not sequential. A
BACKSPACE statement can only be used for sequential files opened for sequential
access.

266¹ error (266): Fortran abort routine called

FOR$IOS_PROABOUSE. The program called the abort routine to terminate itself.

268¹ severe (268): End of record during read

FOR$IOS_ENDRECDUR. An end-of-record condition was encountered during


execution of a nonadvancing I/O READ statement that did not specify the EOR branch
specifier.

297¹ info (297): nn floating invalid traps

FOR$IOS_FLOINVEXC. The total number of floating-point invalid data traps


Visual Fortran Run-Time Errors Page 19 of 48

encountered during program execution was nn. This summary message appears at
program completion.

298¹ info (298): nn floating overflow traps

FOR$IOS_FLOOVFEXC. The total number of floating-point overflow traps


encountered during program execution was nn. This summary message appears at
program completion.

299¹ info (299): nn floating divide-by-zero traps

FOR$IOS_FLODIV0EXC. The total number of floating-point divide-by-zero traps


encountered during program execution was nn. This summary message appears at
program completion.

300¹ info (300): nn floating underflow traps

FOR$IOS_FLOUNDEXC. The total number of floating-point underflow traps


encountered during program execution was nn. This summary message appears at
program completion.

¹Identifies errors not returned by IOSTAT.

Run-Time Errors 540 Through 569


This section describes in detail Visual Fortran run-time errors 540 through 569.

In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.

The first line of the second column provides the message as it is displayed (following forrtl:),
including the severity level, message number, and the message text. The following lines of the second
column contain the status condition symbol (such as FOR$IOS_INCRECTYP) and an explanation of
the message.

For information about severity levels, see the Introduction.

Number Severity Level, Number, and Message Text; Condition Symbol and Explanation

540 severe (540): Array or substring subscript expression out of range

FOR$IOS_F6096. An expression used to index an array was smaller than the lower
dimension bound or larger than the upper dimension bound.

541 severe (541): CHARACTER substring expression out of range

FOR$IOS_F6097. An expression used to index a character substring was illegal.

542 severe (542): Label not found in assigned GOTO list


Visual Fortran Run-Time Errors Page 20 of 48

FOR$IOS_F6098. The label assigned to the integer-variable name was not specified in
the label list of the assigned GOTO statement.

543 severe (543): INTEGER arithmetic overflow

FOR$IOS_F6099. This error occurs whenever integer arithmetic results in overflow.

544 severe (544): INTEGER overflow on input

FOR$IOS_F6100. An integer item exceeded the legal size limits.

An INTEGER(1) item must be in the range -127 to 128. An INTEGER(2) item must
be in the range - 32,767 to 32,768. An INTEGER(4) item must be in the range -
2,147,483,647 to 2,147,483,648.

545 severe (545): Invalid INTEGER

FOR$IOS_F6101. Either an illegal character appeared as part of an integer, or a


numeric character larger than the radix was used in an alternate radix specifier.

546 severe (546): REAL indefinite (uninitialized or previous error)

FOR$IOS_F6102. An invalid real number was read from a file, an internal variable, or
the console. This can happen if an invalid number is generated by passing an illegal
argument to an intrinsic function -- for example, SQRT(-1) or ASIN(2). If the invalid
result is written and then later read, the error will be generated.

547 severe (547): Invalid REAL

FOR$IOS_F103. An illegal character appeared as part of a real number.

548 severe (548): REAL math overflow

FOR$IOS_F6104. A real value was too large. Floating-point overflows in either direct
or emulated mode generate NaN (Not-A-Number) exceptions, which appear in the
output field as asterisks (*) or the letters NAN.

550 severe (550): INTEGER assignment overflow

FOR$IOS_F6106. This error occurs when assignment to an integer is out of range. This
message appears only if the /check:bounds option is used in compiling.

551 severe (551): Formatted I/O not consistent with OPEN options

FOR$IOS_F6200. The program tried to perform formatted I/O on a unit opened with
FORM=’UNFORMATTED’ or FORM=’BINARY’.

552 severe (552): List-directed I/O not consistent with OPEN options

FOR$IOS_F6201. The program tried to perform list-directed I/O on a file that was not
Visual Fortran Run-Time Errors Page 21 of 48

opened with FORM=’FORMATTED’ and ACCESS=’SEQUENTIAL’.

553 severe (553): Terminal I/O not consistent with OPEN options

FOR$IOS_F6202. When a special device such as CON, LPT1, or PRN is opened in an


OPEN statement, its access must be sequential and its format must be either formatted
or binary. By default ACCESS=’SEQUENTIAL’ and FORM=’FORMATTED’ in
OPEN statements. To generate this error the device’s OPEN statement must contain an
option not appropriate for a terminal device, such as ACCESS=’DIRECT’ or
FORM=’UNFORMATTED’.

554 severe (554): Direct I/O not consistent with OPEN options

FOR$IOS_F6203. A REC= option was included in a statement that transferred data to


a file that was opened with the ACCESS=’SEQUENTIAL’ option.

555 severe (555): Unformatted I/O not consistent with OPEN options

FOR$IOS_F6204. If a file is opened with FORM=’FORMATTED’, unformatted or


binary data transfer is prohibited.

556 severe (556): A edit descriptor expected for CHARACTER

FOR$IOS_F6205. The A edit descriptor was not specified when a character data item
was read or written using formatted I/O.

557 severe (557): E, F, D, or G edit descriptor expected for REAL

FOR$IOS_F6206. The E, F, D, or G edit descriptor was not specified when a real data
item was read or written using formatted I/O.

558 severe (558): I edit descriptor expected for INTEGER

FOR$IOS_F6207. The I edit descriptor was not specified when an integer data item was
read or written using formatted I/O.

559 severe (559): L edit descriptor expected for LOGICAL

FOR$IOS_F6208. The L edit descriptor was not specified when a logical data item was
read or written using formatted I/O.

560 severe (560): File already open: parameter mismatch

FOR$IOS_F6209. An OPEN statement specified a connection between a unit and a


filename that was already in effect. In this case, only the BLANK= option can have a
different setting.

561 severe (561): Namelist I/O not consistent with OPEN options

FOR$IOS_F6210. The program tried to perform namelist I/O on a file that was not
opened with FORM=’FORMATTED’ and ACCESS=’SEQUENTIAL’.
Visual Fortran Run-Time Errors Page 22 of 48

562 severe (562): IOFOCUS option illegal with non-window unit

FOR$IOS_F6211. IOFOCUS was specified in an OPEN or INQUIRE statement for a


non-window unit. The IOFOCUS option can only be used when the unit opened or
inquired about is a QuickWin child window.

563 severe (563): IOFOCUS option illegal without QuickWin

FOR$IOS_F6212. IOFOCUS was specified in an OPEN or INQUIRE statement for a


non-QuickWin application. The IOFOCUS option can only be used when the unit
opened or inquired about is a QuickWin child window.

564 severe (564): TITLE illegal with non-window unit

FOR$IOS_F6213. TITLE was specified in an OPEN or INQUIRE statement for a


non-window unit. The TITLE option can only be used when the unit opened or
inquired about is a QuickWin child window.

565 severe (565): TITLE illegal without QuickWin

FOR$IOS_F6214. TITLE was specified in an OPEN or INQUIRE statement for a


non-QuickWin application. The TITLE option can only be used when the unit opened
or inquired about is a QuickWin child window.

566 severe (566): KEEP illegal for scratch file

FOR$IOS_F6300. STATUS=’KEEP’ was specified for a scratch file; this is illegal


because scratch files are automatically deleted at program termination.

567 severe (567): SCRATCH illegal for named file

FOR$IOS_F6301. STATUS=’SCRATCH’ should not be used in a statement that


includes a filename.

568 severe (568): Multiple radix specifiers

FOR$IOS_F6302. More than one alternate radix for numeric I/O was specified. F6302
can indicate an error in spacing or a mismatched format for data of different radices.

569 severe (569): Illegal radix specifier

FOR$IOS_F6303. A radix specifier was not between 2 and 36, inclusive. Alternate
radix constants must be of the form n#ddd... where n is a radix from 2 to 36 inclusive
and ddd... are digits with values less than the radix. For example, 3#12 and 34#7AX are
valid constants with valid radix specifiers. 245#7A and 39#12 do not have valid radix
specifiers and generate error 569 if input.

Run-Time Errors 570 Through 614


Visual Fortran Run-Time Errors Page 23 of 48

This section describes in detail Visual Fortran run-time errors 570 through 614.

In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.

The first line of the second column provides the message as it is displayed (following forrtl:),
including the severity level, message number, and the message text. The following lines of the second
column contain the status condition symbol (such as FOR$IOS_INCRECTYP) and an explanation of
the message.

For information about severity levels, see the Introduction.

Number Severity Level, Number, and Message Text; Condition Symbol and Explanation

570 severe (570): Illegal STATUS value

FOR$IOS_F6304. An illegal value was used with the STATUS= option.

STATUS= accepts the following values:

l ’KEEP’ or ’DELETE’ when used with CLOSE


l ’OLD’, ’NEW’, ’SCRATCH’, or ’UNKNOWN’ when used with OPEN

571 severe (571): Illegal MODE value

FOR$IOS_F6305. An illegal value was used with the MODE= option.

MODE= accepts the values ’READ’, ’WRITE’, or ’READWRITE’.

572 severe (572): Illegal ACCESS value

FOR$IOS_F6306. An illegal value was used with the ACCESS= option.

ACCESS= accepts the values ’SEQUENTIAL’ and ’DIRECT’.

573 severe (573): Illegal BLANK value

FOR$IOS_F6307. An illegal value was used with the BLANK= option.

BLANK= accepts the values ’NULL’ and ’ZERO’.

574 severe (574): Illegal FORM value

FOR$IOS_F6308. An illegal value was used with the FORM= o ption.

FORM= accepts the following values: ’FORMATTED’, ’UNFORMATTED’, and


’BINARY’.
Visual Fortran Run-Time Errors Page 24 of 48

575 severe (575): Illegal SHARE value

FOR$IOS_F6309. An illegal value was used with the SHARE= option.

SHARE= accepts the values ’COMPAT’, ’DENYRW’, ’DENYWR’, ’DENYRD’, and


’DENYNONE’.

577 severe (577): Illegal record number

FOR$IOS_F6311. An invalid number was specified as the record number for a direct-
access file.

The first valid record number for direct-access files is 1.

578 severe (578): No unit number associated with *

FOR$IOS_F6312. In an INQUIRE statement, the NUMBER= option was specified for


the file associated with * (console).

580 severe (580): Illegal unit number

FOR$IOS_F6314. An illegal unit number was specified.

Legal unit numbers can range from 0 through 2**31-1, inclusive.

581 severe (581): Illegal RECL value

FOR$IOS_F6315. A negative or zero record length was specified for a direct file.

The smallest valid record length for direct files is 1.

582 severe (582): Array already allocated

FOR$IOS_F6316. The program attempted to ALLOCATE an already allocated array.

583 severe (583): Array size zero or negative

FOR$IOS_F6317. The size specified for an array in an ALLOCATE statement must be


greater than zero.

584 severe (584): Non-HUGE array exceeds 64K

FOR$IOS_F6318.

585 severe (585): Array not allocated

FOR$IOS_F6319. The program attempted to DEALLOCATE an array that was never


allocated.

586 severe (586): BACKSPACE illegal on terminal device


Visual Fortran Run-Time Errors Page 25 of 48

FOR$IOS_F6400. A BACKSPACE statement specified a unit connected to a terminal


device such as a terminal or printer.

587 severe (587): EOF illegal on terminal device

FOR$IOS_F6401. An EOF intrinsic function specified a unit connected to a terminal


device such as a terminal or printer.

588 severe (588): ENDFILE illegal on terminal device

FOR$IOS_F6402. An ENDFILE statement specified a unit connected to a terminal


device such as a terminal or printer.

589 severe (589): REWIND illegal on terminal device

FOR$IOS_F6403. A REWIND statement specified a unit connected to a terminal


device such as a terminal or printer.

590 severe (590): DELETE illegal for read-only file

FOR$IOS_F6404. A CLOSE statement specified STATUS=’DELETE’ for a read-only


file.

591 severe (591): External I/O illegal beyond end of file

FOR$IOS_F6405. The program tried to access a file after executing an ENDFILE


statement or after it encountered the end-of-file record during a read operation.

A BACKSPACE, REWIND, or OPEN statement must be used to reposition the file


before execution of any I/O statement that transfers data.

592 severe (592): Truncation error: file closed

FOR$IOS_F6406.

593 severe (593): Terminal buffer overflow

FOR$IOS_F6407. More than 131 characters were input to a record of a unit connected
to the terminal (keyboard). Note that the operating system may impose additional limits
on the number of characters that can be input to the terminal in a single record.

594 severe (594): Comma delimiter disabled after left repositioning

FOR$IOS_F6408. If you have record lengths that exceed the buffer size associated with
the record, (for instance, the record is a file with the buffer set by BLOCKSIZE= in the
OPEN statement), either you should not do left tabbing within the record, or you should
not use commas as field delimiters. This is because commas are disabled as input field
delimiters if left tabbing leaves the record positioned in a previous buffer.
Visual Fortran Run-Time Errors Page 26 of 48

For example, consider you have a file LONG.DAT that is one continuous record with
data fields separated by commas. You then set the buffer associated with the file to 512
bytes, read more than one buffer size of data, tab left to data in the previous buffer, and
attempt to read further data, as follows:

INTEGER value(300)
OPEN (1, FILE = ’LONG.DAT’, BLOCKSIZE = 512)
READ (1, 100) (value(i), i = 1, 300)
100 FORMAT (290I2,TL50,10I2)

In this case, error 594 occurs.

599 severe (599): File already connected to a different unit

FOR$IOS_F6413. The program tried to connect an already connected file to a new unit.

A file can be connected to only one unit at a time.

600 severe (600): Access not allowed

FOR$IOS_F6414.

This error can be caused by one of the following:

l The filename specified in an OPEN statement was a directory.


l An OPEN statement tried to open a read-only file for writing.
l The file was opened with SHARE=DENYRW’ by another process.

601 severe (601): File already exists

FOR$IOS_F6415. An OPEN statement specified STATUS=’NEW’ for a file that


already exists.

602 severe (602): File not found

FOR$IOS_F6416. An OPEN statement specified STATUS=’OLD’ for a file that does


not exist.

603 severe (603): Too many open files

FOR$IOS_F6417. The program exceeded the number of open files the operating system
allows.

604 severe (604): Too many units connected

FOR$IOS_F6418. The program exceeded the number of units that can be connected at
one time. Units are connected with the OPEN statement.
Visual Fortran Run-Time Errors Page 27 of 48

605 severe (605): Illegal structure for unformatted file

FOR$IOS_F6419. The file was opened with FORM=’UNFORMATTED’ and


ACCESS=’SEQUENTIAL’, but its internal physical structure was incorrect or
inconsistent. Possible causes: the file was created in another mode or by a non-Fortran
program.

606 severe (606): Unknown unit number

FOR$IOS_F6420. A statement such as BACKSPACE or ENDFILE specified a file


that had not yet been opened. (The READ and WRITE statements do not cause this
problem because they prompt you for a file if the file has not been opened yet.)

607 severe (607): File read-only or locked against writing

FOR$IOS_F6421. The program tried to transfer data to a file that was opened in read-
only mode or locked against writing.

The error message may indicate a CLOSE error when the fault is actually coming from
WRITE. This is because the error is not discovered until the program tries to write
buffered data when it closes the file.

608 severe (608): No space left on device

FOR$IOS_F6422. The program tried to transfer data to a file residing on a device (such
as a hard disk) that was out of storage space.

609 severe (609): Too many threads

FOR$IOS_F6423. Too many threads were active simultaneously. At most, 32 threads


can be active at one time. Close any unnecessary processes or child windows within
your application.

610 severe (610): Invalid argument

FOR$IOS_F6424.

611 severe (611): BACKSPACE illegal for SEQUENTIAL write-only files

FOR$IOS_F6425. The BACKSPACE statement is not allowed in files opened with


MODE=WRITE (write-only status) because BACKSPACE requires reading the
previous record in the file to provide positioning.

Resolve the problem by giving the file read access or by avoiding the BACKSPACE
statement. Note that the REWIND statement is valid for files opened as write-only.
Visual Fortran Run-Time Errors Page 28 of 48

612 severe (612): File not open for reading or file locked

FOR$IOS_F6500. The program tried to read from a file that was not opened for reading
or was locked.

613 severe (613): End of file encountered

FOR$IOS_F6501. The program tried to read more data than the file contains.

614 severe (614): Positive integer expected in repeat field

FOR$IOS_F6502. When the i*c form is used in list-directed input, the i must be a
positive integer. For example, consider the following statement:

READ(*,*) a, b

Input 2*56.7 is accepted, but input 2.1*56.7 returns error 614.

Run-Time Errors 615 Through 656


This section describes in detail Visual Fortran run-time errors 615 through 656.

In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.

The first line of the second column provides the message as it is displayed (following forrtl:),
including the severity level, message number, and the message text. The following lines of the second
column contain the status condition symbol (such as FOR$IOS_INCRECTYP) and an explanation of
the message.

For information about severity levels, see the Introduction.

Number Severity Level, Number, and Message Text; Condition Symbol and Explanation

615 severe (615): Multiple repeat field

FOR$IOS_F6503. In list-directed input of the form i*c, an extra repeat field was used.
For example, consider the following:

READ(*,*) I, J, K

Input of 2*1*3 returns this error. The 2*1 means send two values, each 1; the *3 is an
error.

616 severe (616): Invalid number in input

FOR$IOS_F6504. Some of the values in a list-directed input record were not numeric.
Visual Fortran Run-Time Errors Page 29 of 48

For example, consider the following:

READ(*,*) I, J

The preceding statement would cause this error if the input were: 123 ’abc’.

617 severe (617): Invalid string in input

FOR$IOS_F6505. A string item was not enclosed in single quotation marks.

618 severe (618): Comma missing in COMPLEX input

FOR$IOS_F6506. When using list-directed input, the real and imaginary components of
a complex number were not separated by a comma.

619 severe (619): T or F expected in LOGICAL read

FOR$IOS_F6507. The wrong format was used for the input field for logical data.

The input field for logical data consists of optional blanks, followed by an optional
decimal point, followed by a T for true or F for false. The T or F may be followed by
additional characters in the field, so that .TRUE. and .FALSE. are acceptable input
forms.

620 severe (620): Too many bytes read from unformatted record

FOR$IOS_F6508. The program tried to read more data from an unformatted file than
the current record contained. If the program was reading from an unformatted direct
file, it tried to read more than the fixed record length as specified by the RECL= option.
If the program was reading from an unformatted sequential file, it tried to read more
data than was written to the record.

621 severe (621): H or apostrophe edit descriptor illegal on input

FOR$IOS_F6509. Hollerith (H) or apostrophe edit descriptors were encountered in a


format used by a READ statement.

622 severe (622): Illegal character in hexadecimal input

FOR$IOS_F6510. The input field contained a character that was not hexadecimal.

Legal hexadecimal characters are 0 - 9 and A - F.

623 severe (623): Variable name not found

FOR$IOS_F6511. A name encountered on input from a namelist record is not declared


in the corresponding NAMELIST statement.

624 severe (624): Invalid NAMELIST input format

FOR$IOS_F6512. The input record is not in the correct form for namelist input.
Visual Fortran Run-Time Errors Page 30 of 48

625 severe (625): Wrong number of array dimensions

FOR$IOS_F6513. In namelist input, an array name was qualified with a different


number of subscripts than its declaration, or a non-array name was qualified.

626 severe (626): Array subscript exceeds allocated area

FOR$IOS_F6514. A subscript was specified in namelist input which exceeded the


declared dimensions of the array.

627 severe (627): Invalid subrange in NAMELIST input

FOR$IOS_F6515. A character item in namelist input was qualified with a subrange that
did not meet the requirement that 1 <= e1 <= e2 <= len (where "len" is the length of the
character item, "e1" is the leftmost position of the substring, and "e2" is the rightmost
position of the substring).

628 severe (628): Substring range specified on non-CHARACTER item

FOR$IOS_F6516. A non-CHARACTER item in namelist input was qualified with a


substring range.

629 severe (629): Internal file overflow

FOR$IOS_F6600. The program either overflowed an internal-file record or tried to


write to a record beyond the end of an internal file.

630 severe (630): Direct record overflow

FOR$IOS_F6601. The program tried to write more than the number of bytes specified
in the RECL= option to an individual record of a direct-access file.

631 severe (631):Numeric field bigger than record size

FOR$IOS_F6602. The program tried to write a noncharacter item across a record


boundary in list-directed or namelist output. Only character constants can cross record
boundaries.

632 severe (632): Heap space limit exceeded

FOR$IOS_F6700. The program ran out of heap space. The ALLOCATE statement
and various internal functions allocate memory from the heap. This error will be
generated when the last of the heap space is used up.

633 severe (633): Scratch file name limit exceeded

FOR$IOS_F6701. The program exhausted the template used to generate unique


scratch-file names. The maximum number of scratch files that can be open at one time is
26.
Visual Fortran Run-Time Errors Page 31 of 48

634 severe (634): D field exceeds W field in ES edit descriptor

FOR$IOS_F6970. The specified decimal length D exceeds the specified total field width
W in an ES edit descriptor.

635 severe (635): D field exceeds W field in EN edit descriptor

FOR$IOS_F6971. The specified decimal lengthD exceeds the specified total field width
W in an EN edit descriptor.

636 severe (636): Exponent of 0 not allowed in format

FOR$IOS_F6972.

637 severe (637): Integer expected in format

FOR$IOS_F6980. An edit descriptor lacked a required integer value. For example,


consider the following:

WRITE(*, 100) I, J
100 FORMAT (I2, TL, I2)

The preceding code will cause this error because an integer is expected after TL.

638 severe (638): Initial left parenthesis expected in format

FOR$IOS_F6981. A format did not begin with a left parenthesis (( ).

639 severe (639): Positive integer expected in format

FOR$IOS_F6982. A zero or negative integer value was used in a format.

Negative integer values can appear only with the P edit descriptor. Integer values of 0
can appear only in the d and m fields of numeric edit descriptors.

640 severe (640): Repeat count on nonrepeatable descriptor

FOR$IOS_F6983. One or more BN, BZ, S, SS, SP, T, TL, TR, /, $, :, or apostrophe
(’) edit descriptors had repeat counts associated with them.

641 severe (641): Integer expected preceding H, X, or P edit descriptor

FOR$IOS_F6984. An integer did not precede a (nonrepeatable) H, X, or P edit


descriptor.

The correct formats for these descriptors are nH, nX, and kP, respectively, where n is a
positive integer and k is an optionally signed integer.

642 severe (642): N or Z expected after B in format


Visual Fortran Run-Time Errors Page 32 of 48

FOR$IOS_F6985. To control interpretation of embedded and trailing blanks within


numeric input fields, you must specify BN (to ignore them) or BZ (to interpret them as
zeros).

643 severe (643): Format nesting limit exceeded

FOR$IOS_F6986. More than 16 sets of parentheses were nested inside the main level of
parentheses in a format.

644 severe (644): ’.’ expected in format

FOR$IOS_F6987. No period appeared between the w and d fields of a D, E, F, or G


edit descriptor.

645 severe (645): Unexpected end of format

FOR$IOS_F6988. An incomplete format was used.

Improperly matched parentheses, an unfinished Hollerith (H) descriptor, or another


incomplete descriptor specification can cause this error.

646 severe (646): Unexpected character in format

FOR$IOS_F6989. A character that cannot be interpreted as part of a valid edit


descriptor was used in a format. For example, consider the following:

WRITE(*, 100) I, J
100 FORMAT (I2, TL4.5, I2)

The code will generate this error because TL4.5 is not a valid edit descriptor. An integer
must follow TL.

647 severe (647): M field exceeds W field in I edit descriptor

FOR$IOS_F6990. In syntax Iw.m, the value of m cannot exceed the value of w.

648 severe (648): Integer out of range in format

FOR$IOS_F6991. An integer value specified in an edit descriptor was too large to


represent as a 4-byte integer.

649 severe (649): format not set by ASSIGN

FOR$IOS_F6992. The format specifier in a READ, WRITE, or PRINT statement was


an integer variable, but an ASSIGN statement did not properly assign it the statement
label of a FORMAT statement in the same program unit.

650 severe (650): Separator expected in format

FOR$IOS_F6993. Within format specifications, edit descriptors must be separated by


Visual Fortran Run-Time Errors Page 33 of 48

commas or slashes (/).

651 severe (651): %c or $: nonstandard edit descriptor in format

FOR$IOS_F6994.

652 severe (652): Z: nonstandard edit descriptor in format

FOR$IOS_F6995. Z is not a standard edit descriptor in format.

If you want to transfer hexadecimal values, you must use the edit descriptor form Zw
[.m], where w is the field width and m is the minimum number of digits that must be in
the field (including leading zeros).

653 severe (653): DOS graphics not supported under Windows NT

FOR$IOS_F6996.

654 severe (654): Graphics error

FOR$IOS_F6997. An OPEN statement in which IOFOCUS was TRUE, either explicitly


or by default, failed because the new window could not receive focus. The window
handle may be invalid, or closed, or there may be a memory resource problem.

655 severe (655): Using QuickWin is illegal in console application

FOR$IOS_F6998. A call to QuickWin from a console application was encountered


during execution.

656 severe (656): Illegal ’ADVANCE’ value

FOR$IOS_F6999. The ADVANCE= option can only take the values ’YES’ and ’NO’.
ADVANCE=’YES’ is the default .ADVANCE= is a READ statement option.

Run-Time Errors 657 Through 689


This section describes in detail Visual Fortran run-time errors 657 through 689.

In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.

The first line of the second column provides the message as it is displayed (following forrtl:),
including the severity level, message number, and the message text. The following lines of the second
column contain the status condition symbol (such as FOR$IOS_INCRECTYP) and an explanation of
the message.

For information about severity levels, see the Introduction.


Visual Fortran Run-Time Errors Page 34 of 48

Number Severity Level, Number, and Message Text; Condition Symbol and Explanation

657 severe (657): DIM argument to SIZE out of range

FOR$IOS_F6702. The argument specified for DIM must be greater than or equal to 1,
and less than or equal to the number of dimensions in the specified array. Consider the
following:

i = SIZE (array, DIM = dim)

In this case, 1 <= dim <= n, where n is the number of dimensions in array.

658 severe (657): Undefined POINTER used as argument to ASSOCIATED function

FOR$IOS_F6703. A POINTER used as an argument to the ASSOCIATED function


must be defined; that is, assigned to a target, allocated, or nullified.

659 severe (659): Reference to uninitialized POINTER

FOR$IOS_F6704. Except in an assignment statement, a pointer must not be referenced


until it has been initialized: assigned to a target, allocated or nullified.

660 severe (660): Reference to POINTER which is not associated

FOR$IOS_F6705. Except in an assignment statement and certain procedure references,


a pointer must not be referenced until it has been associated: either assigned to a target
or allocated.

661 severe (661): Reference to uninitialized POINTER ’pointer’

FOR$IOS_F6706. Except in an assignment statement, a pointer must not be referenced


until it has been initialized: assigned to a target, allocated or nullified.

662 severe (662): reference to POINTER ’pointer’ which is not associated

FOR$IOS_F6707. Except in an assignment statement and certain procedure references,


a pointer must not be referenced until it has been associated: either assigned to a target
or allocated.

663 severe (663): Out of range: substring starting position ’pos’ is less than 1

FOR$IOS_F6708. A substring starting position must be a positive integer variable or


expression that indicates a position in the string: at least 1 and no greater than the length
of the string.

664 severe (664): Out of range: substring ending position ’pos’ is greater than string
Visual Fortran Run-Time Errors Page 35 of 48

length ’len’

FOR$IOS_F6709. A substring ending position must be a positive integer variable or


expression that indicates a position in the string: at least 1 and no greater than the length
of the string.

665 severe (665): Subscript ’n’ of ’str’ (value ’val’) is out of range (’first:last’)

FOR$IOS_F6710. The subscript for a substring within a string is not a valid string
position: at least 1 and no greater than the length of the string.

666 severe (666): Subscript ’n’ of ’str’ (value ’val’) is out of range (’first:*’)

FOR$IOS_F6711. The subscript for a substring within a string is not a valid string
position: at least 1 and no greater than the length of the string.

667 severe (667): VECTOR argument to PACK has incompatible character length

FOR$IOS_F6712. The character length of elements in the VECTOR argument to


PACK is not the same as the character length of elements in the array to be packed.

668 severe (668): VECTOR argument to PACK is too small

FOR$IOS_F6713. The VECTOR argument to PACK must have at least as many


elements as there are true elements in MASK (the array that controls packing).

669 severe (669): SOURCE and PAD arguments to RESHAPE have different character
lengths

FOR$IOS_F6714. The character length of elements in the SOURCE and PAD


arguments to PACK must be the same.

670 severe (670): Element ’n’ of SHAPE argument to RESHAPE is negative

FOR$IOS_F6715. The SHAPE vector specifies the shape of the reshaped array. Since
an array cannot have a negative dimension, SHAPE cannot have a negative element.

671 severe (671): SOURCE too small for specified SHAPE in RESHAPE, and no PAD

FOR$IOS_F6716. If there is no PAD array, the SOURCE argument to RESHAPE


must have enough elements to make an array of the shape specified by SHAPE.

672 severe (672): Out of memory

FOR$IOS_F6717. The system ran out of memory while trying to make the array
specified by RESHAPE. If possible, reset your virtual memory size through the
Windows Control Panel, or close unneccessary applications and deallocate all allocated
arrays that are no longer needed.

673 severe (673): SHAPE and ORDER arguments to RESHAPE have different sizes
Visual Fortran Run-Time Errors Page 36 of 48

(’size1’ and ’size2’)

FOR$IOS_F6718. ORDER specifies the order of the array dimensions given in


SHAPE, and they must be vectors of the same size.

674 severe (674): Element ’n’ of ORDER argument to RESHAPE is out of range
(’range’)

FOR$IOS_F6719. The ORDER argument specifies the order of the dimensions of the
reshaped array, and it must be a permuted list of (1, 2, ..., n) where n is the highest
dimension in the reshaped array.

675 severe (675): Value ’val’ occurs twice in ORDER argument to RESHAPE

FOR$IOS_F6720. The ORDER vector specifies the order of the dimensions of the
reshaped array, and it must be a permuted list of (1, 2, ..., n) where n is the highest
dimension in the reshaped array. No dimension can occur twice.

676 severe (676): Impossible nextelt overflow in RESHAPE

FOR$IOS_F6721.

677 severe (677): Invalid value ’dim’ for argument DIM for SPREAD of rank ’rank’
source

FOR$IOS_F6722. The argument specified for DIM to SPREAD must be greater than
or equal to 1, and less than or equal to one larger than the number of dimensions (rank)
of SOURCE. Consider the following statement:

result = SPREAD (SOURCE= array, DIM = dim, NCOPIES = k)

In this case, 1 <= dim <= n + 1, where n is the number of dimensions in array.

678 severe (678): Complex zero raised to power zero

FOR$IOS_F6723. Zero of any type (complex, real, or integer) cannot be raised to zero
power.

679 severe (679): Complex zero raised to negative power

FOR$IOS_F6724. Zero of any type (complex, real, or integer) cannot be raised to a


negative power. Raising to a negative power inverts the operand.

680 severe (680): Impossible error in NAMELIST input

FOR$IOS_F6725.

681 severe (681):DIM argument to CSHIFT (’dim’) is out of range

FOR$IOS_F6726. The optional argument DIM specifies the dimension along which to
perform the circular shift, and must be greater than or equal to 1 and less than or equal
Visual Fortran Run-Time Errors Page 37 of 48

to the number of dimensions in the array to be shifted. That is, 1 <=DIM <= n, where n
is the number of dimensions in the array to be shifted.

682 severe (682): DIM argument (’dim’) to CSHIFT is out of range (1:’n’)

FOR$IOS_F6727. The optional argument DIM specifies the dimension along which to
perform the circular shift, and must be greater than or equal to 1 and less than or equal
to the number of dimensions in the array to be shifted. That is, 1 <=DIM <= n, where n
is the number of dimensions in the array to be shifted.

683 severe (683): Shape mismatch (dimension ’dim’) between ARRAY and SHIFT in
CSHIFT

FOR$IOS_F6728. The SHIFT argument to CSHIFT must be either scalar or an array


one dimension smaller than the shifted array. If an array, the shape of the SHIFT must
conform to the shape of the array being shifted in every dimension except the one being
shifted along.

684 severe (684): Internal error - bad arguments to CSHIFT_CA

FOR$IOS_F6729.

685 severe (685): Internal error - bad arguments to CSHIFT_CAA

FOR$IOS_F6730.

686 severe (686): DATE argument to DATE_AND_TIME is too short (LEN=’len’)

FOR$IOS_F6731. The character DATE argument must have a length of at least 8 to


contain the complete value.

687 severe (687): TIME argument to DATE_AND_TIME is too short (LEN=’len’)

FOR$IOS_F6732. The character TIME argument must have a length of at least 10 to


contain the complete value.

688 severe (688): ZONE argument to DATE_AND_TIME is too short (LEN=’len’)

FOR$IOS_F6733. The character ZONE argument must have a length of at least 5 to


contain the complete value.

689 severe (689): VALUES argument to DATE_AND_TIME is too small (’size’ elements)

FOR$IOS_F6734. The integer VALUES argument must be a one-dimensional array


with a size of at least 8 to hold all returned values.

Run-Time Errors 690 Through 719


This section describes in detail Visual Fortran run-time errors 690 through 719.
Visual Fortran Run-Time Errors Page 38 of 48

In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.

The first line of the second column provides the message as it is displayed (following forrtl:),
including the severity level, message number, and the message text. The following lines of the second
column contain the status condition symbol (such as FOR$IOS_INCRECTYP) and an explanation of
the message.

For information about severity levels, see the Introduction.

Number Severity Level, Number, and Message Text; Condition Symbol and Explanation

690 severe (690): Out of range: DIM argument to COUNT has value ’dim’

FOR$IOS_F6735. The optional argument DIM specifies the dimension along which to
count true elements of MASK, and must be greater than or equal to 1 and less than or
equal to the number of dimensions in MASK. That is, 1 <= DIM <= n, where n is the
number of dimensions in MASK.

691 severe (691): Out of range: DIM argument to COUNT has value ’dim’ with MASK
of rank ’rank’

FOR$IOS_F6736. The optional argument DIM specifies the dimension along which to
count true elements of MASK, and must be greater than or equal to 1 and less than or
equal to the number of dimensions (rank) in MASK. That is, 1 <= DIM <= n, where n
is the number of dimensions in MASK.

692 severe (692): Out of range: DIM argument to PRODUCT has value ’dim’

FOR$IOS_F6737. The optional argument DIM specifies the dimension along which to
compute the product of elements in an array, and must be greater than or equal to 1 and
less than or equal to the number of dimensions in the array. That is, 1 <= DIM <= n,
where n is the number of dimensions in array holding the elements to be multiplied.

693 severe (693): Out of range: DIM argument to PRODUCT has value ’dim’ with
ARRAY of rank ’rank’

FOR$IOS_F6738. The optional argument DIM specifies the dimension along which to
compute the product of elements in an array, and must be greater than or equal to 1 and
less than or equal to the number of dimensions (rank) of the array. That is, 1 <= DIM
<= n, where n is the number of dimensions in array holding the elements to be
multiplied.

694 severe (694): Out of range: DIM argument to SUM has value ’dim’ with ARRAY of
Visual Fortran Run-Time Errors Page 39 of 48

rank ’rank’

FOR$IOS_F6739. The optional argument DIM specifies the dimension along which to
sum the elements of an array, and must be greater than or equal to 1 and less than or
equal to the number of dimensions (rank) of the array. That is, 1 <= DIM <= n, where n
is the number of dimensions in array holding the elements to be summed.

695 severe (695): Real zero raised to zero power

FOR$IOS_F6740. Zero of any type (real, complex, or integer) cannot be raised to zero
power.

696 severe (696): Real zero raised to negative power

FOR$IOS_F6741. Zero of any type (real, complex, or integer) cannot be raised to a


negative power. Raising to a negative power inverts the operand.

697 severe (697): Out of range: DIM argument to SUM has value ’dim’

FOR$IOS_F6742. The optional argument DIM specifies the dimension along which to
sum the elements of an array, and must be greater than or equal to 1 and less than or
equal to the number of dimensions in the array. That is, 1 <= DIM <= n, where n is the
number of dimensions in array holding the elements to be summed.

698 severe (698): DIM argument (’dim’) to EOSHIFT is out of range (1:’n’)

FOR$IOS_F6743. The optional argument DIM specifies the dimension along which to
perform an end-off shift in an array, and must be greater than or equal to 1 and less than
or equal to the number of dimensions in the array. That is, 1 <= DIM <= n, where n is
the number of dimensions in array holding the elements to be shifted.

699 severe (699): Shape mismatch (dimension ’dim’) between ARRAY and BOUNDARY
in EOSHIFT

FOR$IOS_F6744. The BOUNDARY argument to EOSHIFT must be either scalar or


an array one dimension smaller than the shifted array. If an array, the shape of the
BOUNDARY must conform to the shape of the array being shifted in every dimension
except the one being shifted along.

700 severe (700): DIM argument to EOSHIFT is out of range (’dim’)

FOR$IOS_F6745. The optional argument DIM specifies the dimension along which to
perform an end-off shift in an array, and must be greater than or equal to 1 and less than
or equal to the number of dimensions in the array. That is, 1 <= DIM <= n, where n is
the number of dimensions in array holding the elements to be shifted.

701 severe (701): Shape mismatch (dimension ’dim’) between ARRAY and SHIFT in
Visual Fortran Run-Time Errors Page 40 of 48

EOSHIFT

FOR$IOS_F6746. The SHIFT argument to EOSHIFT must be either scalar or an array


one dimension smaller than the shifted array. If an array, the shape of the SHIFT must
conform to the shape of the array being shifted in every dimension except the one being
shifted along.

702 severe (702): BOUNDARY argument to EOSHIFT has wrong LEN (’len1 instead of
len2’)

FOR$IOS_F6747. The character length of elements in the BOUNDARY argument and


in the array being end-off shifted must be the same.

703 severe (703): BOUNDARY has LEN ’len’ instead of ’len’ to EOSHIFT

FOR$IOS_F6748.

704 severe (704): Internal error - bad arguments to EOSHIFT

FOR$IOS_F6749.

705 severe (705): GETARG: value of argument ’num’ is out of range

FOR$IOS_F6750. The value used for the number of the command-line argument to
retrieve with GETARG must be 0 or a positive integer. If the number of the argument
to be retrieved is greater than the actual number of arguments, blanks are returned, but
no error occurs.

706 severe (706): FLUSH: value of LUNIT ’num’ is out of range

FOR$IOS_F6751. The unit number specifying which I/O unit to flush to its associated
file must be an integer between 0 and 2**31-1, inclusive. If the unit number is valid, but
the unit is not opened, error F6752 is generated.

707 severe (707): FLUSH: Unit ’n’ is not connected

FOR$IOS_F6752. The I/O unit specified to be flushed to its associated file is not
connected to a file.

708 severe (708): Invalid string length (’len’) to ICHAR

FOR$IOS_F6753. The character argument to ICHAR must have length 1.

709 severe (709): Invalid string length (’len’) to IACHAR

FOR$IOS_F6754. The character argument to IACHAR must have length 1.

710 severe (710): Integer zero raised to negative power

FOR$IOS_F6755. Zero of any type (integer, real, or complex) cannot be raised to a


negative power. Raising to a negative power inverts the operand.
Visual Fortran Run-Time Errors Page 41 of 48

711 severe (711): INTEGER zero raised to zero power

FOR$IOS_F6756. Zero of any type (integer, real, or complex) cannot be raised to zero
power.

712 severe (712): SIZE argument (’size’) to ISHFTC intrinsic out of range

FOR$IOS_F6757. The argument SIZE must be positive and must not exceed the bit
size of the integer being shifted. The bit size of this integer can be determined with the
function BIT_SIZE.

713 severe (713): SHIFT argument (’shift’) to ISHFTC intrinsic out of range

FOR$IOS_F6758. The argument SHIFT to ISHFTC must be an integer whose


absolute value is less than or equal to the number of bits being shifted: either all bits in
the number being shifted or a subset specified by the optional argument SIZE.

714 severe (714): Out of range: DIM argument to LBOUND has value ’dim’

FOR$IOS_F6759. The optional argument DIM specifies the dimension whose lower
bound is to be returned, and must be greater than or equal to 1 and less than or equal to
the number of dimensions in the array. That is, 1 <= DIM <= n, where n is the number
of dimensions in array.

715 severe (715): Out of range: DIM argument (’dim’) to LBOUND greater than ARRAY
rank ’rank’

FOR$IOS_F6760. The optional argument DIM specifies the dimension whose lower
bound is to be returned, and must be greater than or equal to 1 and less than or equal to
the number of dimensions (rank) in the array. That is, 1 <= DIM <= n, where n is the
number of dimensions in array.

716 severe (716): Out of range: DIM argument to MAXVAL has value ’dim’

FOR$IOS_F6761. The optional argument DIM specifies the dimension along which
maximum values are returned, and must be greater than or equal to 1 and less than or
equal to the number of dimensions in the array. That is, 1 <=DIM <= n, where n is the
number of dimensions in array.

717 severe (717): Out of range: DIM argument to MAXVAL has value ’dim’ with
ARRAY of rank ’rank’

FOR$IOS_F6762. The optional argument DIM specifies the dimension along which
maximum values are returned, and must be greater than or equal to 1 and less than or
equal to the number of dimensions (rank) in the array. That is, 1 <=DIM <= n, where n
is the number of dimensions in array.

718 severe (718): Cannot allocate temporary array -- out of memory


Visual Fortran Run-Time Errors Page 42 of 48

FOR$IOS_F6763. There is not enough memory space to hold a temporary array.

Dynamic memory allocation is limited by several factors, including swap file size and
memory requirements of other applications that are running. If you encounter an
unexpectedly low limit, you might need to reset your virtual memory size through the
Windows Control Panel or redefine the swap file size. Allocated arrays that are no
longer needed should be deallocated.

719 severe (719): Attempt to DEALLOCATE part of a larger object

FOR$IOS_F6764. An attempt was made to DEALLOCATE a pointer to an array


subsection or an element within a derived type. The whole data object must be
deallocated; parts cannot be deallocated.

Run-Time Errors 720 Through 759


This section describes in detail Visual Fortran run-time errors 720 through 759.

In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.

The first line of the second column provides the message as it is displayed (following forrtl:),
including the severity level, message number, and the message text. The following lines of the second
column contain the status condition symbol (such as FOR$IOS_INCRECTYP) and an explanation of
the message.

For information about severity levels, see the Introduction.

Number Severity Level, Number, and Message Text; Condition Symbol and Explanation

720 severe (720): Pointer in DEALLOCATE is ASSOCIATED with an ALLOCATABLE


array

FOR$IOS_F6765. Deallocating a pointer associated with an allocatable target is illegal.


Instead, deallocate the target the pointer points to, which frees memory and
disassociates the pointer.

721 severe (721): Attempt to DEALLOCATE an object which was not allocated

FOR$IOS_F6766. You cannot deallocate an array unless it has been previously


allocated. You cannot deallocate a pointer whose target was not created by allocation.
The intrinsic function ALLOCATED can be used to determine whether an allocatable
array is currently allocated.

722 severe (722): Cannot ALLOCATE scalar POINTER -- out of memory

FOR$IOS_F6767. There is not enough memory space to allocate the pointer.


Visual Fortran Run-Time Errors Page 43 of 48

Dynamic memory allocation is limited by several factors, including swap file size and
memory requirements of other applications that are running. If you encounter an
unexpectedly low limit, you might need to reset your virtual memory size through the
Windows Control Panel or redefine the swap file size. Allocated arrays that are no
longer needed should be deallocated.

723 severe (723): DEALLOCATE: object not allocated/associated

FOR$IOS_F6768. You cannot deallocate an array unless it has been previously


allocated. You cannot deallocate a pointer whose target was not created by allocation,
or a pointer that has undefined association status.

The intrinsic function ALLOCATED can be used to determine whether an allocatable


array is currently allocated.

724 severe (724): Cannot ALLOCATE POINTER array -- out of memory

FOR$IOS_F6769. There is not enough memory space to allocate the POINTER array.

Dynamic memory allocation is limited by several factors, including swap file size and
memory requirements of other applications that are running. If you encounter an
unexpectedly low limit, you might need to reset your virtual memory size through the
Windows Control Panel or redefine the swap file size. Allocated arrays that are no
longer needed should be deallocated.

725 severe (725): DEALLOCATE: Array not allocated

FOR$IOS_F6770. It is illegal to DEALLOCATE an array that is not allocated. You


can check the allocation status of an array before deallocating with the ALLOCATED
function.

726 severe (726): DEALLOCATE: Character array not allocated

FOR$IOS_F6771. It is illegal to DEALLOCATE an array that is not allocated. You


can check the allocation status of an array before deallocating with the ALLOCATED
function.

727 severe (727): Cannot ALLOCATE allocatable array -- out of memory

FOR$IOS_F6772. There is not enough memory space to hold the array.

Dynamic memory allocation is limited by several factors, including swap file size and
memory requirements of other applications that are running. If you encounter an
unexpectedly low limit, you might need to reset your virtual memory size through the
Windows Control Panel or redefine the swap file size. Allocated arrays that are no
longer needed should be deallocated.

728 severe (728): Cannot allocate automatic object -- out of memory


Visual Fortran Run-Time Errors Page 44 of 48

FOR$IOS_F6773. There is not enough memory space to hold the automatic data object.

Dynamic memory allocation is limited by several factors, including swap file size and
memory requirements of other applications that are running. If you encounter an
unexpectedly low limit, you might need to reset your virtual memory size through the
Windows Control Panel or redefine the swap file size. Allocated arrays that are no
longer needed should be deallocated.

An automatic data object is an object that is declared in a procedure subprogram or


interface, is not a dummy argument, and depends on a nonconstant expression. For
example:

SUBROUTINE EXAMPLE (N)


DIMENSION A (N, 5), B(10*N)

The arrays A and B in the example are automatic data objects.

729 severe (729): DEALLOCATE failure: ALLOCATABLE array is not ALLOCATED

FOR$IOS_F6774. It is illegal to DEALLOCATE an array that is not allocated. You


can check the allocation status of an array before deallocating with the ALLOCATED
function.

730 severe (730): Out of range: DIM argument to MINVAL has value ’dim’

FOR$IOS_F6775. The optional argument DIM specifies the dimension along which
minimum values are returned, and must be greater than or equal to 1 and less than or
equal to the number of dimensions in the array. That is, 1 <= DIM <= n, where n is the
number of dimensions in array.

731 severe (731): Out of range: DIM argument to MINVAL has value ’dim’ with ARRAY
of rank ’rank’

FOR$IOS_F6776. The optional argument DIM specifies the dimension along which
minimum values are returned, and must be greater than or equal to 1 and less than or
equal to the number of dimensions (rank) in the array. That is, 1 <=DIM <= n, where n
is the number of dimensions in array.

732 severe (732): P argument to MOD is double precision zero

FOR$IOS_F6777. MOD(A,P) is computed as A - INT(A/P) * P. So, P cannot be zero.

733 severe (733): P argument to MOD is integer zero

FOR$IOS_F6778. MOD(A,P) is computed as A - INT(A/P) * P. So, P cannot be zero.

734 severe (734): P argument to MOD is real zero


Visual Fortran Run-Time Errors Page 45 of 48

FOR$IOS_F6779. MOD(A,P) is computed as A - INT(A/P) * P. So, P cannot be zero.

735 severe (735): P argument to MODULO is real zero

FOR$IOS_F6780. MODULO(A,P) for real numbers is computed as A - FLOOR(A/P)


* P. So, P cannot be zero.

736 severe (736): P argument to MODULO is zero

FOR$IOS_F6781. In the function, MODULO(A,P), P cannot be zero.

737 severe (737): Argument S to NEAREST is zero

FOR$IOS_F6782. The sign of the S argument to NEAREST(X,S) determines the


direction of the search for the nearest number to X, and cannot be zero.

738 severe (738): Heap storage exhausted

FOR$IOS_F6783.

739 severe (739): PUT argument to RANDOM_SEED is too small

FOR$IOS_F6784. The integer array PUT must be greater than or equal to the number
of integers the processor uses to set the seed value. This number can be determined by
calling RANDOM_SEED with the SIZE argument. For example:

INTEGER, ALLOCATABLE SEED


CALL RANDOM_SEED( ) ! initialize processor
CALL RANDOM_SEED(SIZE = K) ! get size of seed
ALLOCATE SEED(K) ! allocate array
CALL RANDOM_SEED(PUT = SEED) ! set the seed

Note that RANDOM_SEED can be called with at most one argument at a time.

740 severe (740): GET argument to RANDOM_SEED is too small

FOR$IOS_F6785. The integer array GET must be greater than or equal to the number
of integers the processor uses to set the seed value. This number can be determined by
calling RANDOM_SEED with the SIZE argument. For example:

INTEGER, ALLOCATABLE SEED


CALL RANDOM_SEED( ) ! initialize processor
CALL RANDOM_SEED(SIZE = K) ! get size of seed
ALLOCATE SEED(K) ! allocate array
CALL RANDOM_SEED(GET = SEED) ! get the seed

Note that RANDOM_SEED can be called with at most one argument at a time.
Visual Fortran Run-Time Errors Page 46 of 48

741 severe (741): Recursive i/o reference

FOR$IOS_F6786.

742 severe (742): Argument to SHAPE intrinsic is not PRESENT

FOR$IOS_F6787.

743 severe (743): Out of range: DIM argument to UBOUND had value ’dim’

FOR$IOS_F6788. The optional argument DIM specifies the dimension whose upper
bound is to be returned, and must be greater than or equal to 1 and less than or equal to
the number of dimensions in the array. That is, 1 <= DIM <= n, where n is the number
of dimensions in array.

744 severe (744): DIM argument (’dim’) to UBOUND greater than ARRAY rank ’rank’

FOR$IOS_F6789. The optional argument DIM specifies the dimension whose upper
bound is to be returned, and must be greater than or equal to 1 and less than or equal to
the number of dimensions (rank) in the array. That is, 1 <=DIM <= n, where n is the
number of dimensions in array.

745 severe (745): Out of range: UBOUND of assumed-size array with DIM==rank
(’rank’)

FOR$IOS_F6790. The optional argument DIM specifies the dimension whose upper
bound is to be returned.

An assumed-size array is a dummy argument in a subroutine or function, and the upper


bound of its last dimension is detemined by the size of actual array passed to it.
Assumed-size arrays have no determined shape, and you cannot use UBOUND to
determine the extent of the last dimension. You can use UBOUND to determine the
upper bound of one of the fixed dimensions, in which case you must pass the dimension
number along with the array name.

746 severe (746): Out of range: DIM argument (’dim’) to UBOUND greater than
ARRAY rank

FOR$IOS_F6791. The optional argument DIM specifies the dimension whose upper
bound is to be returned, and must be greater than or equal to 1 and less than or equal to
the number of dimensions (rank) in the array. That is, 1 <= DIM <= n, where n is the
number of dimensions in array.

747 severe (747): Shape mismatch: Dimension ’shape’ extents are ’ext1’ and ’ext2’

FOR$IOS_F6792.

748 severe (748): Illegal POSITION value

FOR$IOS_F6793. An illegal value was used with the POSITION= specifier.


Visual Fortran Run-Time Errors Page 47 of 48

POSITION= accepts the following values:

l ’ASIS’ (the default)


l ’REWIND’ - on Fortran I/O systems, this is the same as ’ASIS’
l ’APPEND’

749 severe (749): Illegal ACTION value

FOR$IOS_F6794. An illegal value was used with the ACTION= specifier.

ACTION= accepts the following values:

l ’READ’
l ’WRITE’
l ’READWRITE’ - the default

750 severe (750): DELIM= specifier not allowed for an UNFORMATTED file

FOR$IOS_F6795. The DELIM= specifier is only allowed for files connected for
formatted data transfer. It is used to delimit character constants in list-directed an
namelist output.

751 severe (751): Illegal DELIM value

FOR$IOS_F6796. An illegal value was used with the DELIM=specifier.

DELIM= accepts the following values:

l ’APOSTROPHE’
l ’QUOTE’
l ’NONE’ - the default

752 severe (752): PAD= specifier not allowed for an UNFORMATTED file

FOR$IOS_F6797. The PAD= specifier is only allowed for formatted input records. It
indicates whether the formatted input record is padded with blanks when an input list
and format specification requires more data than the record contains.

753 severe (753): Illegal PAD= value

FOR$IOS_F6798. An illegal value was used with the PAD= specifier.

PAD= accepts the following values:

l ’NO’
l ’YES’ - the default
Visual Fortran Run-Time Errors Page 48 of 48

754 severe (754): Illegal CARRIAGECONTROL= value

FOR$IOS_F6799. An illegal value was used with the CARRIAGECONTROL=


specifier.

CARRIAGECONTROL= accepts the following values:

l ’FORTRAN’ - default if /vms is specified or the unit is connected to a terminal or


console
l ’LIST’ - default for formatted files
l ’NONE’ - default for unformatted files

755 severe (755): SIZE= specifier only allowed with ADVANCE=’NO’

FOR$IOS_F6800. The SIZE= specifier can only appear in a formatted, sequential


READ statement that has the specifier ADVANCE=’NO’ (indicating nonadvancing
input).

756 severe (756): Illegal character in binary input

FOR$IOS_F6801.

757 severe (757): Illegal character in octal input

FOR$IOS_F6802.

758 severe (758): End of record encountered

FOR$IOS_F6803.

759 severe (759): Illegal subscript in namelist input record

FOR$IOS_F6804.
Linker Tools Messages Page 1 of 32

Linker Tools Messages


The following topics cover linker tools errors and warnings (LNKnnnn), which can be generated
LINK, LIB, DUMPBIN, and EDITBIN:

l Linker Errors LNK1000 to LNK1149


l Linker Errors LNK1152 to LNK1189
l Linker Errors LNK1190 to LNK1581
l Linker Errors LNK2001 to LNK2014
l Linker Warnings LNK4001 to LNK4039
l Linker Warnings LNK4040 to LNK4069
l Linker Warnings LNK4070 to LNK4099
l Linker Warnings LNK4102 to LNK4549
l Linker Warnings LNK6001 to LNK6026
l Corrupt Object File Explanation

Corrupt Object File Explanation:

Sometimes the linker is unable to process your object files because they are corrupt. Besides the usual
causes of corrupt files such as network problems or exposing a floppy disk to a magnetic field,
sometimes the compiler writes an incorrect object file, which you should report to technical support.

After you have ruled out a hardware, operating system, or network problem as the cause of the
corrupt object file, you should try the tips below because sometimes by changing compiler options and
recompiling, the compiler will write a non-corrupt object file. Here are some things to try when
recompiling:

l Turn off optimization with the /nooptimize (/Od, Disable) option.


l Use a different code generation option. See the /tune (/G, Optimize for Processor) options.
l Change the order of functions and global variables.

With Visual C++ mixed-language programs:

l Disable incremental compilation with the /Gi- (Enable Incremental Compilation) option.
l Disable minimal rebuild with the /Gm- (Enable Minimal Rebuild) option.
l Compile with the /Gy (Enable Function-Level Linking) option to package functions.

Linker Errors LNK1000 to LNK1149

Linker Tools Error LNK1000


unknown error; consult documentation for technical support options
Note the circumstances of the error, try to isolate the problem and create a reproducible test case, then
contact technical support.

Linker Tools Error LNK1101


incorrect MSPDBxx.DLL version; recheck installation of this product
Linker Tools Messages Page 2 of 32

The version of MSPDBxx.DLL available on your system does not match the version required by this
tool.

Linker Tools Error LNK1102


out of memory
There was not enough memory for the tool to run. Probably the paging file exceeded available disk
space. If a shortage of disk space is not the cause, note the circumstances of the error, try to isolate
the problem and create a reproducible test case, then request technical support.

Linker Tools Error LNK1103


debugging information corrupt; recompile module

Probably the compilation was terminated before a valid object file was created. Recompile the given
object file. If recompiling does not correct the problem, note the circumstances of the error, try to
isolate the problem and create a reproducible test case, then consult technical support. See Corrupt
Object File for more information.

Linker Tools Error LNK1104


cannot open file "filename"
The tool could not open the given file. One of the following may be a cause:

l There was not enough disk space.


l The file does not exist.
l The filename or its path was incorrectly specified.
l The specified drive is invalid.
l The file does not have the appropriate permissions.
l The path for filename expands to more than 260 characters.
l If the given file is named LNKn, which is a filename generated by the linker for a temporary file,
then the directory specified in the TMP environment variable may not exist, or more than one
directory is specified for the TMP environment variable. (Only one directory path should be
specified for the TMP environment variable.)
l If the error occurs on the executable filename, an earlier version of the executable may still be
running. You will need to terminate the executable before linking it. In Windows NT or
Windows 95 you can use the utility PVIEW to look for and kill instances of the application.
l If the error message occurs for a library name, and you recently ported the .MAK file from a
previous Microsoft Visual C++ development environment, the library may no longer be valid.
Ensure that the library still exists in this circumstance.

Linker Tools Error LNK1105


cannot close file "filename"
The tool could not close the given file. Possibly there was insufficient disk space available.

Linker Tools Error LNK1106


invalid file or disk full: cannot seek to location
The tool could not read or write to location in a memory-mapped file:

l Your disk may be too full to complete the link. Free up some space and try the link again.
l The error may be a result of trying to link over a network. Some networks do not fully support
the memory-mapped files used by the linker. Try linking on your local disk to see if that fixes
Linker Tools Messages Page 3 of 32

the problem.
l There may be a bad block on your disk. Although the operating system and disk hardware
should have detected such an error, you may want to run a disk checking program.

Linker Tools Error LNK1107


invalid or corrupt file: cannot read at location
The tool could not read the file. Recreate the file.

Linker Tools Error LNK1108


cannot write file at location
The tool could not write to the file. One of the following may be a cause:

l There was not enough disk space to create the file.


l The drive being written to was not available, possibly due to a network problem.

Linker Tools Error LNK1109


cannot remove file "filename"
LIB could not delete the given file. Before LIB writes the new version of a library, it removes the
existing library file. One of the following may be a cause:

l The given file does not have the appropriate permissions.


l The drive containing the file was not available, possibly due to a network problem.

Linker Tools Error LNK1110


cannot rename file "filename"
LIB could not rename the given file. When LIB builds a new version of a library, it creates a
temporary file, then renames the file. One of the following may be a cause:

l The given file does not have the appropriate permissions.


l The drive containing the file was not available, possibly due to a network problem.

Linker Tools Error LNK1111


invalid /BASE argument "argument"
The /BASE option was incorrectly specified. Either no argument was specified or argument is not a
number.

Linker Tools Error LNK1112


module machine type "type1" conflicts with target machine type "type2"
The object files specified as input were compiled for different machine types.

Linker Tools Error LNK1113


invalid machine type
The machine type specified in the object header is not valid. Probably the file is corrupt. Rebuild the
object. See Corrupt Object File for more information.

Linker Tools Error LNK1115


/MACHINE option required
LINK or LIB cannot determine the machine type for objects that are provided entirely from libraries.
Either specify the /MACHINE option with the appropriate machine type or specify at least one object
Linker Tools Messages Page 4 of 32

file in the input.

Linker Tools Error LNK1117


syntax error in option "option"
The given option was not correctly specified.

Linker Tools Error LNK1118


syntax error in keyword statement
The given module-definition statement was not correctly specified.

Linker Tools Error LNK1119


invalid ordinal number "argument"
The argument following the at sign (@) in an ordinal specification was not a valid number. An ordinal
number is an optional argument in either an /EXPORT option in a LINK or LIB command or an
EXPORTS statement in a module-definition file. It is an index into the exports table. The number must
be an integer in the range 1-65535.

Linker Tools Error LNK1120


number unresolved externals
Error LNK1120 gives you a count (number) of unresolved externals for this link. The conditions that
cause unresolved externals are described with error LNK2001 (see Linker Errors LNK2001 to
LNK2014), which precedes this error message (once for each unresolved external).

Linker Tools Error LNK1121


duplicate ordinal number "number"
The given ordinal number was specified more than once in either an /EXPORT option in a LINK or
LIB command or an EXPORTS statement in a module-definition file. Ordinal numbers must be unique
integers in the range 1-65535.

Linker Tools Error LNK1123


failure during conversion to COFF: file invalid or corrupt
The object or resource could not be converted to COFF. This tool requires the format of all input files
to be COFF. If an input file is not COFF, the tool runs a conversion tool, either CVTOMF (to convert
32-bit OMF objects) or CVTRES (to convert resource files). This error is preceded by errors or
warnings from the conversion tool. One of the following may be a cause:

l The file is corrupt.


l The file is not a valid file type. An example of an invalid type is a 16-bit OMF object.

Linker Tools Error LNK1127


library is corrupt
The library file is corrupt. Rebuild the library.

Linker Tools Error LNK1129


cannot find resolution for weak extern symbol
The given weak external symbol does not have a default resolution. Probably the symbol table is
corrupt. Rebuild the object file. See Corrupt Object File for more information.

Linker Tools Error LNK1130


Linker Tools Messages Page 5 of 32

Linker miscalc (base relocations off by number)


There was not enough space in the image to write base relocations.

Linker Tools Error LNK1131


no library file specified
The LIB /EXTRACT command required a library as input, but a library filename was not specified.

Linker Tools Error LNK1132


invalid format for MS-DOS stub file "filename"
The filename specified with the /STUB option was not a valid real-mode MS-DOS executable (.EXE)
file.

Linker Tools Error LNK1136


invalid or corrupt file
The input file either has a corrupt header or is zero size or abnormally small. See Corrupt Object File
for more information.

Linker Tools Error LNK1137


invalid argument specified with /SECTION
Either the name or the attributes argument to the /SECTION option is specified incorrectly.

Linker Tools Error LNK1140


too many modules for program database; relink with /PDB:NONE
The project contains more than 4096 modules. One of the following is a solution:

l Relink using /PDB:NONE.


l Compile some modules without debugging information.
l Reduce the number of modules.

Linker Tools Error LNK1141


failure during build of exports file
LINK could not build the exports (.EXP) file. Causes of this error include system problems such as
insufficient memory and syntax errors in options or module-definition statements. This error is
preceded by another error that gives additional information.

Linker Tools Error LNK1143


invalid or corrupt file: no symbol for COMDAT section number
The object file is corrupt. Rebuild the file. See Corrupt Object File for more information.

Linker Tools Error LNK1144


error with LINK_REPRO var; cannot open "filename"
The linker could not create filename. One of the following may be a cause:

l Check that you’ve set your LINK_REPRO environment variable to an existing directory and not
the current directory.
l Make sure there are no read-only files in the directory.
l Make sure none of the files in the LINK_REPRO directory are open by another process,
because the linker needs to write to them.
Linker Tools Messages Page 6 of 32

Linker Tools Error LNK1145


/MERGE created circular link for section "section"
You attempted to merge a section into itself. Check the /MERGE options.

Linker Tools Error LNK1146


no argument specified with option "option"
The given option requires an argument.

Linker Tools Error LNK1147


invalid number specified with option "option"
The argument to the given option was specified incorrectly.

Linker Tools Error LNK1148


failure during conversion to COFF: cannot copy temp file filename
EDITBIN could not convert the input file to COFF. When EDITBIN converts a file, it creates a
temporary file, then copies the file. One of the following may be a cause:

l The given file does not have the appropriate permissions.


l There was not enough disk space to create the file.
l The drive being written to was not available, possibly due to a network problem.

Linker Tools Error LNK1149


output filename matches input filename "filename"
The output filename specified with the /OUT or /IMPLIB option was the same as an input file.

Return to Main Linker Error Page

Linker Errors LNK1152 to LNK1189

Linker Tools Error LNK1152


cannot resolve one or more undecorated symbols
This error is preceded by one warning LNK4022 for each undecorated symbol that could not be
resolved and by at least two warnings LNK4006 for the duplicate symbols found for the undecorated
symbol.

Linker Tools Error LNK1153


/VXD command-line option required
You attempted to build a virtual device driver without the /VXD option. Relink with the /VXD
option.

Linker Tools Error LNK1154


specified import library filename matches exports file filename"
"
The filename specified with LINK /IMPORT or with LIB /DEF /OUT conflicted with the filename
given by LINK or LIB to the exports file, which is formed from the base name of the main output file
and the extension .EXP.

Linker Tools Error LNK1155


special symbol "symbol" already defined
Linker Tools Messages Page 7 of 32

The given symbol is reserved for use by LINK.

Linker Tools Error LNK1156


.sbss section not supported
An object file contained an .sbss section.

Linker Tools Error LNK1157


fixup overflow; offset of target symbol "symbol" greater than +-8MB
The VXD is too large, or the sections are not arranged properly.

Linker Tools Error LNK1158


cannot run "filename"
The given executable file called by LINK is not in the directory that contains LINK and is not in a
directory specified in the PATH environment variable.

Linker Tools Error LNK1159


no output file specified
No name was specified for the main output file (executable file or DLL). LINK derives the default
name of the output file from the base name of the first object file. If no object files are specified, and if
the /OUT option is not used, this error occurs.

Linker Tools Error LNK1160


library with zero objects not allowed
An attempt was made to remove an object from a library that contained only that object. The object
was not removed.

Linker Tools Error LNK1161


invalid export specification
Either the /EXPORT option or the EXPORTS module-definition statement incorrectly specified an
export. A possible cause is a typing error.

Linker Tools Error LNK1162


expected aux symbol for comdat section number
The linker expected to find an auxiliary symbol table for the indicated COMDAT but could not. The
object file is probably corrupt. See Corrupt Object File for more information.

Linker Tools Error LNK1163


invalid selection for comdat section number
The byte in the object file indicating the type of COMDAT section is invalid. The object file is
probably corrupt. See Corrupt Object File for more information.

Linker Tools Error LNK1164


section section alignment (number) greater than /ALIGN value
The alignment size for the given section in the object file exceeds the value specified with the /ALIGN
option. The /ALIGN value must be a power of 2 and must equal or exceed the section alignment given
in the object file. Either recompile with a smaller section alignment or increase the /ALIGN value.

Linker Tools Error LNK1165


link failed because of fixup errors
Linker Tools Messages Page 8 of 32

The build failed due to fixup errors. The /FORCE or /FORCE:UNRESOLVED option overrides this
error.

Linker Tools Error LNK1166


cannot adjust code at offset=offset, va=value
LINK was unable to pad the code as required. Certain instructions are not allowed to cross page
boundaries on some processors. LINK attempts to add pads to correct this situation. In this case,
LINK could not work around the problem.

Linker Tools Error LNK1167


file contains relocs but header has no machine type
A converted COFF object did not have a machine type specified in its header. One cause of this error
is omitting a machine type when converting a .RES file in a separate step before linking.

Linker Tools Error LNK1168


cannot open filename for writing
The given file does not have write permission.

Linker Tools Error LNK1169


one or more multiply defined symbols found
The build failed due to multiple definitions of one or more symbols. This error is preceded by error
LNK2005. The /FORCE or /FORCE:MULTIPLE option overrides this error.

Linker Tools Error LNK1170


line in command file contains limit or more characters
The length of a line in a command file must be less than the given limit.

Linker Tools Error LNK1171


unable to load filename
The given DLL was unavailable. The possible locations for the DLL are the current directory, the
system directory, the Windows directory, and the directories specified in the PATH environment
variable.

Linker Tools Error LNK1172


more than one object with the name "object" found; rename object(s) or relink /PDB:NONE
A library contained two or more objects with the same name. Do one of the following:

l Rename the objects using unique names and rebuild the library.
l Link using the /PDB:NONE option.

Linker Tools Error LNK1173


unable to find entrypoint function in filename
The given function does not exist in the given DLL.

Linker Tools Error LNK1174


unable to /REBASE filename; not a valid Win32 image
The format of the given file was invalid.

Linker Tools Error LNK1175


Linker Tools Messages Page 9 of 32

failed to /REBASE filename


The rebase operation failed on the given file.

Linker Tools Error LNK1177


TOC size limit exceeded
The linker was unable to create a TOC (Table of Contents) in your image file. The limit is 2048 entries
in the TOC.

Linker Tools Error LNK1178


missing MODEND record; file is invalid or corrupt
The linker tool tried to convert an OMF object module to COFF format but could not find an
expected MODEND (module end) record in the OMF object. The OMF object module is corrupt and
needs to be recreated or recopied. See Corrupt Object File for more information.

Linker Tools Error LNK1179


invalid or corrupt file: duplicate comdat comdat
An object module contained two or more COMDATs with the same name. One possible cause is if
you use the Visual C++ /H option with the Visual C++ /Gy option. The /H option limits the length of
external names, and the /Gy option packages functions in COMDATs.

Linker Tools Error LNK1180


insufficient disk space to complete link
The linker tool was unable to complete a file operation since the operating system reported that the
disk is full. Free up space on your local and network drives (if you are writing files there).

Linker Tools Error LNK1181


cannot open input file "filename"
The linker tool could not find "filename" because it does not exist or the path was not found.

Linker Tools Error LNK1182


cannot have more than 64K exports
You have reached the linker’s limit of 65,536 exports.

Linker Tools Error LNK1183


invalid or corrupt file: extended relocation count number less than 65535
The COFF object file is corrupt since it contains an extended relocation count that is less than
0xFFFF. See Corrupt Object File for more information.

Linker Tools Error LNK1184


invalid section name "section" specified in option or directive "option"
You gave the linker an invalid section name in option. Invalid section names contain "$" or blanks.

Linker Tools Error LNK1185


invalid section name "section" specified
You gave the linker an invalid section name in a .DEF file. Invalid section names contain "$" or
blanks.

Linker Tools Error LNK1186


invalid or corrupt COFF object; reloc to undefined static symbol "symbol"
Linker Tools Messages Page 10 of 32

Your COFF object module is corrupt since it contains a relocation entry for an undefined static
symbol. See Corrupt Object File for more information.

Linker Tools Error LNK1187


Corrupt object - unmatched name relocation; ignored
Your object file contains bad relocation information. Recopy or recreate the object file. See Corrupt
Object File for more information.

Linker Tools Error LNK1188


BADFIXUPSECTION:: invalid fixup target "symbol"; possible zero length section
This message is issued only for VxD links when the target of a relocation does not have a section.
With LINK386 (an older version), an OMF GROUP record (generated by a MASM GROUP
directive) may have been used to combine the zero length section with another non-zero length
section. COFF format does not support the GROUP directive and zero-length sections. When LINK
automatically converts this type of OMF objects to COFF, this error may occur.

Linker Tools Error LNK1189


LIBTOOMANYMEMBERS:: library limit of number objects exceeded
The limit of 65535 objects or members in a library has been exceeded.

Return to Main Linker Error Page

Linker Errors LNK1190 to LNK1581

Linker Tools Error LNK1190


invalid fixup found, type type
The object file has become corrupted. Recompile.

Linker Tools Error LNK1194


cannot delay-load dll name due to import of data symbol symbol name; relink without
/DELAYLOAD:dll name
You cannot delay load a DLL if data is imported from it.

Linker Tools Error LNK1195


target machine "machine" requires "option"
Add the required option.

Linker Tools Error LNK1196


invalid or corrupt import object: unknown version
The import library has become corrupted. Rebuild the library.

Linker Tools Error LNK1197


invalid or corrupt import object: unknown type
The import library has become corrupted. Rebuild the library.

Linker Tools Error LNK1198


invalid or corrupt import object: unknown name type
The import library has become corrupted. Rebuild the library.
Linker Tools Messages Page 11 of 32

Linker Tools Error LNK1199


invalid or corrupt import object: non-zero reserved fields
The import library has become corrupted. Rebuild the library.

Linker Tools Error LNK1200


error reading program database "filename"
The given program database (PDB) could not be read, probably because it is corrupted. If filename is
the PDB for an object file, recompile the object file; use the /debug:full and /pdbfile options. If
filename is the PDB for the main output file and this error occurred during an incremental link, delete
the PDB and relink.

Linker Tools Error LNK1201


error writing to program database "filename"; check for insufficient disk space
LINK could not write to the program database (PDB) for the output file. One of the following may be
a cause:

l The file is corrupted. Delete filename and relink.


l There was not enough disk space to write to the file.
l The drive being written to was not available, possibly due to a network problem.

Linker Tools Error LNK1202


"filename" missing debugging information for referencing module
The given program database (PDB) for an object file was invalid. Recompile the object file; use CL’s
/Zi option.

Linker Tools Error LNK1203


"filename" missing current debugging information for referencing module
The given program database (PDB) for an object file was invalid. Recompile the object file; use CL’s
/Zi option.

Linker Tools Error LNK1204


"filename" compiled /Yc /Yu /Z7; cannot create PDB; recompile with /Zi
Multilayered program databases (PDBs) are not supported in combination with old-style debugging
information. Recompile using CL’s /Zi option.

Linker Tools Error LNK1206


cannot overwrite Visual C++ 1.0 PDB "filename"; delete and rebuild
This version of LINK cannot write to an existing program database (PDB) created using older
versions of the visual development environment. Delete filename and rebuild.

Linker Tools Error LNK1207


incompatible PDB format in "filename"; delete and rebuild
This version of LINK cannot write to the existing program database (PDB). Delete filename and
rebuild.

Linker Tools Error LNK1209


program database "filename" differs from previous link; relink or rebuild
The given program database (PDB) is invalid and possibly corrupt. Relink. If filename is also the PDB
Linker Tools Messages Page 12 of 32

for an object file, recompile to recreate the PDB.

Linker Tools Error LNK1210


insufficient memory for incremental link; relink with /INCREMENTAL:NO
There was not enough virtual memory available for LINK to create the incremental status (.ILK) file.

Linker Tools Error LNK1211


precompiled type information not found; "filename" not linked or overwritten
The given object file, compiled with /Yc, either was not specified in the LINK command or was
overwritten.

Linker Tools Error LNK1212


error opening program database; file is in use
The PDB is already in use by another application.

Linker Tools Error LNK1213


unexpected import object encountered
The import library has become corrupted. Rebuild the library.

Linker Tools Error LNK1221


a subsystem can’t be inferred and must be defined
The linker does not have enough information to infer which subsystem you will target your
application. To fix this error, use the /SUBSYSTEM option.

Linker Tools Error LNK1561


entry point must be defined
The symbol specified by the /ENTRY option is not defined.

Linker Tools Error LNK1581


corrupted object or old compiler (bad Pcode entry point)
Your object file contained a bad entry point. The object file is probably corrupt. See Corrupt Object
File for more information.

Return to Main Linker Error Page

Linker Errors LNK2001 to LNK2014

Linker Tools Error LNK2001


unresolved external symbol "symbol"
Code will generate this error message if it references something (like a function, variable, or label) that
the linker cannot find in all the libraries and object files it searches. In general, there are two reasons
this error occurs: what the code asks for doesn’t exist (the symbol is spelled incorrectly or uses the
wrong case, for example), or the code asks for the wrong thing (you are using mixed versions of the
libraries; some from one version of the product, others from another version).
Numerous kinds of coding and build errors can cause LNK2001. Several specific causes are listed
below, and some have more detailed explanations.

Coding Problems:
Linker Tools Messages Page 13 of 32

l Mismatched case in your code or module-definition (.DEF) file can cause LNK2001. For
example, if you named a variable "var1" in one C++ source file and tried to access it as "VAR1"
in another, you would receive this error. The solution is to exactly match the case of the symbol
in all references.
l A project that uses function inlining yet defines the functions in a .CPP file rather than in the
header file can cause LNK2001.
l If you are using C++, make sure to use extern "C" when calling a C function from a C++
program. By using extern "C" you force the use of the C naming convention. Be aware of
compiler switches like /Tp or /Tc that force a file to be compiled as a C (/Tc) or C++ (/Tp) file
no matter what the filename extension, or you may get different function names than you
expect.
l Attempting to reference functions or data that don’t have external linkage causes LNK2001. In
C++, inline functions and const data have internal linkage unless explicitly specified as extern.
l A missing function body or variable will cause LNK2001. Having just a function prototype or
extern declaration will allow the compiler to continue without error, but the linker will not be
able to resolve your call to an address or reference to a variable because there is no function
code or variable space reserved.
l Name decoration incorporates the parameters of a function into the final decorated function
name. Calling a function with parameter types that do not match those in the function
declaration may cause LNK2001.
l Incorrectly included prototypes will cause the compiler to expect a function body that is not
provided. If you have both a class and non-class implementation of a function F, beware of C++
scope-resolution rules.
l When using C++, make sure that you include the implementation of a specific function for a
class and not just a prototype in the class definition.
l Attempting to call a pure virtual function from the constructor or destructor of an abstract base
class will cause LNK2001 since by definition a pure virtual function has no base class
implementation.
l Only global functions and variables are public.
Functions declared with the static modifier by definition have file scope. Static variables have
the same limitation. Trying to access any static variables from outside of the file in which they
are declared can result in a compile error or LNK2001.
A variable declared within a function (a local variable) can only be used within the scope of that
function.
C++ global constants have static linkage. This is different than C. If you try to use a global
constant in C++ in multiple files you get error LNK2001. One alternative is to include the const
initializations in a header file and include that header in your .CPP files when necessary, just as if
it was a function prototype. Another alternative is to make the variable non-constant and use a
constant reference when assessing it.

Compiling and Linking Problems:

l The names of the run-time libraries needed at link time are included in the object file module by
the compiler. If you use the /NOD (/NODEFAULTLIB) option, these libraries will not be linked
into the project unless you have explicitly included them. Using /NOD will cause error
LNK2001 in this case.
l If you are using Unicode and MFC, you will get an unresolved external on _WinMain@16 if
Linker Tools Messages Page 14 of 32

you don’t create an entrypoint to wWinMainCRTStartup. Use the /ENTRY option or type this
value in the Project Settings dialog box. (To find this option in the development environment,
click Settings on the Project menu, then click the Link tab, and click Output in the Category
box.)
l See the following Microsoft® Knowledge Base articles located in the Online Information
System for more information. An easy way to reach an article is to copy a "Q" number above,
open the Search dialog box from the Help menu and select the Query tab, then paste the number
into the first text box and press ENTER.
‰ Q125750 "PRB: Error LNK2001: '_WinMain@16': Unresolved External Symbol"
‰ Q131204 "PRB: Wrong Project Selection Causes LNK2001 on _WinMain@16"
‰ Q100639 "Unicode Support in the Microsoft Foundation Class Library"
l Linking code compiled with /MT with the library LIBC.LIB causes LNK2001 on _beginthread,
_beginthreadex, _endthread, and _endthreadex.
l When compiling with /MD, a reference to "func" in your source becomes a reference
"__imp__func" in the object since all the run-time is now held within a DLL. If you try to link
with the static libraries LIBC.LIB or LIBCMT.LIB, you will get LNK2001 on __imp__func. If
you try to link with MSVCxx.LIB when compiling without /MD you will not always get
LNK2001, but you will likely have other problems.
l Linking code compiled with an explicit or implicit /ML to the LIBCMT.LIB causes LNK2001
on _errno.
l Linking with the release mode libraries when building a debug version of an application can
cause LNK2001. Similarly, using an /Mxd option (/MLd, /MTd, or /MDd) and/or defining
_DEBUG and then linking with the release libraries will give you potential unresolved externals
(among other problems). Linking a release mode build with the debug libraries will also cause
similar problems.
l Mixing versions of Microsoft libraries and compiler products can be problematic. A new
compiler version's libraries may contain new symbols that cannot be found in the libraries
included with previous versions. Use DUMPBIN to find out if a symbol is in a 32-bit object file
or library.
l There is currently no standard for C++ naming between compiler vendors or even between
different versions of a compiler. Therefore linking object files compiled with other compilers
may not produce the same naming scheme and thus cause error LNK2001.
l Mixing inline and non-inline compile options on different modules can cause LNK2001. If a
C++ library is created with function inlining turned on (/Ob1 or /Ob2) but the corresponding
header file describing the functions has inlining turned off (no inline keyword), you will get this
error. To prevent this problem, have the inline functions defined with inline in the header file
you are going to include in other files.
l If you are using the Visual C++ #pragma inline_depth compiler directive, make sure you have a
value of 2 or greater set, and make sure you are using the /Ob1 or /Ob2 compiler option.
l Omitting the LINK option /NOENTRY when creating a resource-only DLL will cause
LNK2001.
l Using incorrect /SUBSYSTEM or /ENTRY settings can cause LNK2001. For example, if you
write a character-based application (a console application) and specify
/SUBSYSTEM:WINDOWS, you will get an unresolved external for WinMain. For more
information on these options and entry points, see the /SUBSYSTEM and /ENTRY linker
options.

Export Problems:
Linker Tools Messages Page 15 of 32

l When you are porting an application from 16 to 32 bits, LNK2001 can occur. The current 32-
bit module-definition (.DEF) file syntax requires that __cdecl, __stdcall, and __fastcall functions
be listed in the EXPORTS section without underscores (undecorated). This differs from the 16-
bit syntax, where they must be listed with underscores (decorated). For more information, see
the description of the EXPORTS section of module-definition files.
l Any export listed in the .DEF file and not found will cause LNK2001. This could be because it
does not exist, is spelled incorrectly, or uses decorated names (.DEF files do not take decorated
names). This error message is followed by fatal error LNK1120.

The following sections give more detailed information on some of the issues named in the above list.

l Missing function body or variable

Having just a function prototype will allow the compiler to continue without error, but the
linker will not be able to resolve your call to an address because there is no function code or
variable space reserved. You will not see this error until you create an actual call to the function
that the linker must resolve.
l Name decoration

Normally this refers to C++ naming conventions, but it applies to a number of non-C++ cases as
well. C++ by default will use the name of a function, its parameters and its return type when
calculating a name for a function.

Use extern "C" when calling a C function from a C++ program. Extern "C" forces use of the C
naming convention for non-class C++ functions.

Linker Tools Error LNK2003


gp relative fixup to symbol not in .sdata "module"
The /Gt value specified when compiling an instance of a type differed from the value specified when
compiling the reference to the type. Rebuild the object files with consistent values for /Gt. This error is
followed by fatal error LNK1165.

Linker Tools Error LNK2004


gp relative fixup overflow; sdata section ("section") is too large
The .sdata section was too large. Rebuild using smaller values for /Gt and /GPSIZE. This error is
followed by fatal error LNK1165.

Linker Tools Error LNK2005


symbol already defined in object
The given symbol, displayed in its decorated form, was multiply defined. One of the following may be
a cause:

l The most common cause of this error is accidentally linking with both the single-threaded and
multithreaded libraries. Ensure that the application project file includes only the appropriate
libraries and that any third-party libraries have appropriately created single-threaded or
multithreaded versions.
l The given symbol was a packaged function (created by compiling with /Gy) and was included in
Linker Tools Messages Page 16 of 32

more than one file but was changed between compilations. Recompile all files that include the
symbol.
l The given symbol was defined differently in two member objects in different libraries, and both
member objects were used.
l An absolute was defined twice, with a different value in each definition. This error is followed
by fatal error LNK1169.

Linker Tools Error LNK2006


TOC relative fixup to symbol not in TOC "name"; fixup ignored
LINK found an invalid fixup and ignored it.

Linker Tools Error LNK2007


TOC relative fixup overflow; TOC is too large; fixup ignored
LINK found an invalid fixup and ignored it.

Linker Tools Error LNK2008


Fixup target is not aligned "alignment"
LINK found a fixup target in your object file that was not aligned properly.

Linker Tools Error LNK2009


Fixup target must be absolute "name" w/o -FIXED; fixup ignored
LINK found an invalid fixup and ignored it.

Linker Tools Error LNK2010


Duplicate IMGLUE relocations for "name"
LINK found duplicate relocations for "name" in your object file. The object file is probably corrupt.
See Corrupt Object File for more information.

Linker Tools Error LNK2011


precompiled object not linked in; image may not run
If you use precompiled headers, LINK now requires that all of the object files created with
precompiled headers must be linked in. If you have a source file that you use to generate a
precompiled header for use with other source files, you now must include the object file created along
with the precompiled header.

Linker Tools Error LNK2012


No NOP following relocationtype relocation to "symbol"
TOCINDIRCALL and TOCCALLREL require a NOP following the instruction that has this type of
relocation. This is mainly useful for compiler and assembler developers who use the Microsoft linker.

Linker Tools Error LNK2013


Fixup overflow. Target "symbol" is out of range
This error occurs when the executable is too large or the error may indicate a problem with assembly
code. To work around the problem:

l Use shared libraries.


l TOC space is required for global data accessed from a module other than where it is defined.

You can eliminate the TOC space by moving such data to the module where it is referenced.
Linker Tools Messages Page 17 of 32

However, if data is referenced in multiple modules, then the TOC space cannot be eliminated to save
space.

Linker Tools Error LNK2014


TLS relative fixup overflow; .tls section ("section") is too large
The section created for thread-local storage (.tls) is too large. TLS data must fit in 32 KB. This data is
created using the __declspec(thread) storage class modifier in the declaration and definition of that
data. To work around the problem:

l Reduce the amount of thread-local data in the code.


l Use dynamic TLS by calling functions such as TlsAlloc and TlsFree.

Return to Main Linker Error Page

Linker Warnings LNK4001 to LNK4039

Linker Tools Warning LNK4001


no object files specified; libraries used
The command did not specify any object files as input. The tool used objects from the libraries that
were specified as input.

Linker Tools Warning LNK4002


symbol defined in object
The given symbol, displayed in its decorated form, was specified in its undecorated form in object, but
a unique match to a decorated symbol could not be found. This warning is always preceded by
warning LNK4022 and followed by fatal error LNK1152.

Linker Tools Warning LNK4003


invalid library format; library ignored
The file header for the input library was invalid. The tool did not use the library.

Linker Tools Warning LNK4005


no objects used from library library
The library was specified in the command, but no references were resolved from that library.

Linker Tools Warning LNK4006


symbol already defined in object; second definition ignored
The given symbol, displayed in its decorated form, was multiply defined. When this warning is
encountered, symbol will be added twice, but only its first form will be used. Tips:

l The given symbol may be a packaged function, created by compiling with /Gy. This symbol was
included in more than one file but was changed between compilations. Recompile all files that
include the symbol.
l The given symbol may have been defined differently in two member objects in different libraries.
l An absolute may have been defined twice, with a different value in each definition.
l If the error message is received when combining libraries, symbol already exists in the library
being added to.

Linker Tools Warning LNK4010


Linker Tools Messages Page 18 of 32

invalid version number "number"; default version assumed


Either the major or the minor number in the specified version argument was not valid. Each part of a
version specification must be an integer in the range 1-65535. Options that take a version argument
include /SUBSYSTEM and /VERSION.

Linker Tools Warning LNK4011


unknown subsystem "argument"; default assumed
The /SUBSYSTEM option was incorrectly specified. Either no argument was specified or argument
did not have the expected syntax. The tool assumed an appropriate default.

Linker Tools Warning LNK4012


invalid value "argument", must be keywords; option ignored
The given argument was not a valid keyword for the option it was specified with. The valid arguments
are shown in the given list of keywords.

Linker Tools Warning LNK4013


image size imagesize exceeds specified maximum maxsize
The base address file specified with the /BASE option listed the maximum size of the program as
maxsize, but maxsize was less than the resulting image size of the program.

Linker Tools Warning LNK4014


cannot find member object "objectname"
LIB could not find objectname in the library. The /REMOVE and /EXTRACT options require the full
name of the member object that is to be deleted or copied to a file. The full name includes the path of
the original object file. To see the full names of member objects in a library, use DUMPBIN
/ARCHIVEMEMBERS or LIB /LIST.

Linker Tools Warning LNK4015


memorytype commit exceeds reserve; commit size set tosize
The value specified for the commit size for the memorytype exceeded the value specified for the
reserve size. The tool assumed size as the value of the commit size.

Linker Tools Warning LNK4017


keyword statement not supported for the target platform; ignored

The given module-definition statement is not supported by this version of the linker tools. The tool
ignored the statement in the .DEF file.

Linker Tools Warning LNK4018


too many type indexes in PDB "filename", discarding subsequent type information
There are more than 64K type indexes in the program database (PDB). The PDB might contain
unneeded type information. Delete the existing PDB and rebuild. If the warning persists, then compile
some modules without debugging information.

Linker Tools Warning LNK4019


corrupt string table (table end); new end assumed
The object file is corrupt. The tool attempted to correct the problem. To prevent this warning, rebuild
the object file. See Corrupt Object File for more information.
Linker Tools Messages Page 19 of 32

Linker Tools Warning LNK4022


cannot find unique match for symbol "symbol"
LINK or LIB found multiple matches for the given undecorated symbol and it could not resolve the
ambiguity. No output file (.EXE, .DLL, .EXP, or .LIB) is produced. This warning is followed by one
warning LNK4006 for each duplicate symbol and is finally followed by fatal error LNK1152. To
prevent this warning, specify the symbol in its decorated form. Run DUMPBIN on the object to see
decorated names.

Linker Tools Warning LNK4023


base address address not a 64K multiple; assumed newaddress
The base address specified with the /BASE option must be a multiple of 64K. The tool assumed a
newaddress value for the base address.

Linker Tools Warning LNK4027


CVPACK error
LINK called CVPACK to process the debugging information, but one of the following occurred:

l The call failed. Be sure that CVPACK is in a directory specified in the PATH environment
variable and that there is sufficient memory.
l CVPACK issued an error. Errors generated by CVPACK have the form CKnnnn.

Linker Tools Warning LNK4028


option option is obsolete; ignored
The given option is not supported. LINK ignored the option and continued the build.

Linker Tools Warning LNK4030


invalid file offset number for category;category not dumped
DUMPBIN could not display information for the given category. Probably the file is invalid or
corrupt. See Corrupt Object File for more information.

Linker Tools Warning LNK4031


no subsystem specified; CONSOLE assumed
The /SUBSYSTEM option was not specified, and LINK was not able to determine a subsystem from
the input files.

Linker Tools Warning LNK4033


converting object format from OMF to COFF
The format of the object file is OMF. This tool requires COFF input. To permanently convert the file,
run EDITBIN on the file with no options.

Linker Tools Warning LNK4037


"symbol" does not exist; ignored
The symbol could not be ordered using the /ORDER option because it could not be found in the
program. Check the specification of symbol in the ordering file.
Note: LINK cannot order static functions because static function names are not public symbol names.
When /ORDER is specified, this linker warning is generated for each symbol, in the order file, that is
either static or not found.
Linker Tools Messages Page 20 of 32

Linker Tools Warning LNK4038


displaying raw data in number units per line
The /RAWDATA option was specified without a formatting argument. DUMPBIN assumed a format
value of number units per line of the specified or assumed data type, as follows:

Data Type Number

none 16

BYTES 16

SHORTS 8

LONGS 4

Linker Tools Warning LNK4039


section "name" specified with /SECTION option does not exist
DUMPBIN or EDITBIN could not find a section called name in the input file. To see the sections in a
file, run DUMPBIN with the /HEADERS option.

Return to Main Linker Error Page

Linker Warnings LNK4040 to LNK4069

Linker Tools Warning LNK4040


corrupt string table (size); string table ignored
The string table in the object file is corrupt. The program may not run as expected. Rebuild the object
file. See Corrupt Object File for more information.

Linker Tools Warning LNK4041


no edit options specified
EDITBIN was run on the input file, but no options were used. If the file format was not COFF,
EDITBIN attempted to convert it. Otherwise, EDITBIN took no action on the file.

Linker Tools Warning LNK4042


object specified more than once; extras ignored
The same object file was specified more than once in the LINK or LIB command. The result is the
same as if the file were specified only the first time.

Linker Tools Warning LNK4043


invalid /ALIGN value number (must be power of 2); assumed default
The argument specified with the /ALIGN option was not a power of 2.

Linker Tools Warning LNK4044


unrecognized option "option"; ignored
The given option is not a valid option for this tool. The tool ignored the option. To see a list of valid
options, run the tool with no arguments or options.
Linker Tools Messages Page 21 of 32

Linker Tools Warning LNK4045


creating LINK_REPRO test case in dir "directory"
The LINK_REPRO environment variable, when set, specifies a directory where the linker will copy
object files, libraries, and other files. Microsoft can use these files to recreate internal linker errors.
The linker will only copy files if LINK_REPRO is set. If this is not what you want to do, remove the
LINK_REPRO environment variable by typing the following:set LINK_REPRO=

Linker Tools Warning LNK4046


LINK_REPRO is set to current directory; ignored
The LINK_REPRO environment variable should not be set to the current directory. Create a new
directory, set LINK_REPRO to the new directory, and rerun the linker.

Linker Tools Warning LNK4047


cannot edit library file "filename"; ignored
EDITBIN cannot process a library file.

Linker Tools Warning LNK4048


Invalid format file; ignored
EDITBIN could not process the file because it was not a valid object file, executable file, or dynamic-
link library (DLL).

Linker Tools Warning LNK4049


exported symbol "symbol" also imported
The symbol was both exported from and imported to the program. This warning is displayed when the
LINK warning level (set by the /WARN option) is greater than 1.

Linker Tools Warning LNK4051


extra delimiter in /EXPORT specification
The specification of the /EXPORT option ended with a comma (,).

Linker Tools Warning LNK4052


using .EXP file; ignoring .DEF file "filename"
The .DEF file specified in the LINK command was ignored because an .EXP file was also specified.
The .DEF file was already processed when the .EXP file was created and is not necessary in this step
of the build process.

Linker Tools Warning LNK4055


invalid fixup found, address address; fixup ignored
The object contained an invalid fixup. The resulting executable file will probably not run correctly.
Rebuild the object file. See Corrupt Object File for more information.

Linker Tools Warning LNK4056


extra arguments ignored for option "option"
The option was specified with too many arguments. The additional arguments were ignored.

Linker Tools Warning LNK4057


"library1" should precede "library2" in the link command line
Check the order of your libraries. The developer of library1 determined that it should be searched by
Linker Tools Messages Page 22 of 32

the linker before library2. For example, library1 might contain an updated version of a function in
library2. If you specify library2 first, the linker will link in the old version rather than the newer
version from library1.

Linker Tools Warning LNK4059


resourcefile already specified; additional resource file ignored
Only one resource file is allowed. The first .RES file specified in the command was used.

Linker Tools Warning LNK4060


stub file missing full MS-DOS header; rebuild stub with /KNOWEAS 16-bit LINK option
The MS-DOS application specified with the /STUB option does not have a full 40-byte header. The
stub program may not run as expected. To rebuild the 16-bit stub with a full 40-byte header, use the
undocumented /KNOWEAS option with the 16-bit LINK version 5.5x or higher.

Linker Tools Warning LNK4061


/NOSTUB ignored because no DOS stub is present
EDITBIN could not remove the stub file because it could not find one in your executable file.

Linker Tools Warning LNK4062


"option" not compatible with "platform" target machine; option ignored
The given option is not supported for the target platform of this build. LINK ignored the option and
continued the build.

Linker Tools Warning LNK4064


conflicting subsystem; image may not run
You tried to link in a library whose subsystem differs from your executable’s subsystem value, and
your executable file may not run. For more information on subsystems, see the /SUBSYSTEM linker
option. Note: You will not receive this warning if one subsystem is CONSOLE and the the other’s
subsystem is WINDOWS.

Linker Tools Warning LNK4065


"function" cannot be ordered; ignored
The given function was not compiled as a packaged function. Recompile using /Gy.

Linker Tools Warning LNK4066


DLL contains .sdata section
One or more objects was compiled using /Gt. Objects compiled with /Gt cannot be used to create a
DLL.

Linker Tools Warning LNK4067


ambiguous entry point; selected "entry"
LINK found multiple entry points for the program. It assumed the given entry.

Linker Tools Warning LNK4068


/MACHINE not specified; defaulting to machinetype
LINK did not find a machine specification. It assumed the given machine type. If the default is
incorrect, resulting in fatal error LNK1112, relink using the /MACHINE option.

Linker Tools Warning LNK4069


Linker Tools Messages Page 23 of 32

cannot create map and/or checksum image; checksum set to 0


This warning can occur if IMAGEHLP.DLL is not available.

Return to Main Linker Error Page

Linker Warnings LNK4070 to LNK4099

Linker Tools Warning LNK4070


/OUT:filename directive in .EXP differs from output filename f"ilename"; ignoring directive
The filename specified in the NAME or LIBRARY statement when the .EXP file was created differs
from the output filename that was either assumed by default or specified with the /OUT option. A
client program that uses the resulting DLL might encounter problems.

Linker Tools Warning LNK4071


cannot be incrementally linked on subsequent links
LINK found multiple definitions for one or more symbols, but /FORCE or /FORCE:MULTIPLE was
used to create an output file regardless of errors. LINK deleted the incremental status (.ILK) file.

Linker Tools Warning LNK4072


section count count exceeds max (number); image may not run
The number of sections (a COFF .EXE or .DLL file is composed of sections, similar to segments) in
the output file is greater than the limit that can be handled by the loader.

You can view the names of the sections in your executable file by using the DUMPBIN program with
the default /SUMMARY option. See the DUMPBIN Reference for more information. To reduce the
number of sections in your executable file:

l Remove unneeded data_seg, code_seg or alloc_text pragmas. See data_seg, code_seg, and
alloc_text.
l Use the /MERGE option with LINK to combine sections. See /MERGE.

Linker Tools Warning LNK4073


cannot create map for .ILK file; linking nonincrementally
There was not a large enough contiguous space in shared memory for LINK to create the incremental
status (.ILK) file. LINK performed a nonincremental build.

Linker Tools Warning LNK4074


unable to load filename; cannot checksum
The linker tried to load the dynamic-link library filename but could not. A function in filename is used
to checksum the executable file. One of the following may be a cause:

l The linker could not find filename because it is not in the current directory or in a directory in
the PATH environment variable.
l There was a problem with filename. Recopy filename from the installation disks.

Linker Tools Warning LNK4075


ignoring "option1" due to "option2" specification
The option2 specification overrides option1.
Linker Tools Messages Page 24 of 32

Linker Tools Warning LNK4076


invalid incremental status file "filename"; linking nonincrementally
LINK cannot write to the incremental status (.ILK) file. Either filename is corrupt or it is not an
incremental linking database. Remove the file and relink.

Linker Tools Warning LNK4077


exports file "filename" used; ignoring other export specifications
The given exports file provides the program’s exports. Exports specified by the /EXPORT option or
the EXPORTS statement in a .DEF file were ignored.

Linker Tools Warning LNK4078


multiple "section" sections found with different attributes
LINK found two or more sections that have the same name but different attributes. Probably an
import library or exports file was created by a previous version of LINK or LIB. Recreate the file and
relink.

Linker Tools Warning LNK4079


no write permission for incremental status file "filename"; linking nonincrementally
LINK cannot write to the incremental status (.ILK) file because filename does not have the correct
permissions.

Linker Tools Warning LNK4081


insufficient disk space; linking nonincrementally
There is not enough space on disk for LINK to create or write to the incremental status (.ILK) file.

Linker Tools Warning LNK4082


unable to find entrypoint function in module; cannot checksum
The function CheckSumMappedFile() does not exist in IMAGEHLP.DLL.

Linker Tools Warning LNK4083


module "name" does not exist; ignored
The module "name" you gave in your order file does not exist. Check the spelling. For more
information on order files, see the /ORDER linker option.

Linker Tools Warning LNK4084


total image size size exceeds max (256MB); image may not run
The application exceeds the limit of 256 megabytes.

Linker Tools Warning LNK4085


more than number comments; skipping exestr
This warning occurs when the linker tool is converting an OMF object to a COFF object. It indicates
there are more than 256 comments in the OMF module.

Linker Tools Warning LNK4086


entrypoint ’function’ is not __stdcall with 12 bytes of arguments; image may not run
The entry point for a DLL must be __stdcall. Either recompile the function with the /Gz option or
specify __stdcall or WINAPI when you define the function.
Linker Tools Messages Page 25 of 32

Linker Tools Warning LNK4087


CONSTANT keyword is obsolete; use DATA
This warning occurs if you use CONSTANT with your exports in a module definition file or on the
command line. Use DATA instead.

Linker Tools Warning LNK4088


image being generated due to /FORCE option; image may not run
The linker encountered an error. Normally it deletes the image it created because the image may not
run due to the error. Since you used the /FORCE option, however, the linker did not remove the
image.

Linker Tools Warning LNK4089


all references to "dynamic-link library" discarded by /OPT:REF
The linker discarded all packaged functions that referenced exports in dynamic-link library. As a result,
dynamic-link library and its import library are unneeded.

Linker Tools Warning LNK4090


No IFGLUE relocation in module with branch to glue code "name"
Your object file contained bad relocation information. Recopy or recreate the object file. See Corrupt
Object File for more information.

Linker Tools Warning LNK4092


shared section "section" contains relocations; image may not run correctly
The linker emits this warning whenever you have a shared section to warn you of a potentially serious
problem. One way to share data between multiple processes is to mark a section as "shared." Marking
a section as shared can cause problems, however.

Linker Tools Warning LNK4093


Drive/Directory component ignored in "module-definition" statement
Your module-definition (.DEF) file used a statement incorrectly. The LIBRARY or NAME statements
cannot contain directory or drive information.

Linker Tools Warning LNK4094


filename is an MS-DOS executable; use EXEHDR to dump it
The DUMPBIN program only works with COFF-format executable files. Use EXEHDR on MS-DOS
executables. EXEHDR is included with Visual C++ 1.5.

Linker Tools Warning LNK4095


filename is an NE format executable; use EXEHDR to dump it
The DUMPBIN program only works with COFF-format executable files. Use EXEHDR on NE
format executables. EXEHDR is included with Visual C++ 1.5.

Linker Tools Warning LNK4096


/BASE value "number" is invalid for Windows 95; image may not run
The base address you specified is invalid. Windows 95 executable files must have a base address
greater than 0x400000. For more information on base addresses, see the /BASE linker option.

Linker Tools Warning LNK4097


Linker Tools Messages Page 26 of 32

duplicate name "name" in order file; using last one


Order files specify the order you want the linker to load your functions. In your order file, a function
appears more than once, so the linker ignored all references to it except the last. For more information
on order files, see the /ORDER linker option.

Linker Tools Warning LNK4098


defaultlib "library" conflicts with use of other libs; use /NODEFAULTLIB:library
You are trying to link with incompatible libraries.
Note: The run-time libraries now contain directives to prevent mixing different types. You’ll receive
this warning if you try to use different types or debug and non-debug versions of the run-time library
in the same program. For example, if you compiled one file to use one kind of run-time library and
another file to use another kind (for example, single-threaded versus multithreaded) and tried to link
them, you’ll get this warning. You should compile all source files to use the same run-time library.

You can use the linker’s /VERBOSE:LIB switch to determine which libraries the linker is searching. If
you receive LNK4098 and want to create an executable file that uses, for example, the single-
threaded, non-debug run-time libraries, use the /VERBOSE:LIB option to find out which libraries the
linker is searching. The linker should print LIBC.LIB and not LIBCMT.LIB, MSVCRT.LIB,
LIBCD.LIB, LIBCMTD.LIB, or MSVCRTD.LIB as the libraries searched. You can tell the linker to
ignore the the incorrect run-time libraries by typing the incorrect libraries in the Ignore Libraries text
box on the Link tab of the Settings dialog box in the visual development environment or by using the
/NODEFAULTLIB:library option with LINK for each library you want to ignore. See the
/NODEFAULTLIB linker option for more information.

The table below shows which Visual C++ libraries should be ignored depending on which run-time
library you want to use.
To use this run-time library Ignore these libraries

libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib,


Single-threaded (libc.lib)
msvcrtd.lib

Multithreaded (libcmt.lib) libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

Multithreaded using DLL (msvcrt.lib) libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib,


Debug Single-threaded (libcd.lib)
msvcrtd.lib

Debug Multithreaded (libcmtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib

Debug Multithreaded using DLL


libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib
(msvcrtd.lib)

For example, if you received this warning and you want to create an executable file that uses the non-
debug, single-threaded version of the run-time libraries, you could use the following options with the
linker: /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib
/NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib

Linker Tools Warning LNK4099


PDB "filename" was not found with "object/library" or at "path"; linking object as if no debug info
Linker Tools Messages Page 27 of 32

The linker was unable to find your .PDB file. Copy it into the directory that contains object/library.

Return to Main Linker Error Page

Linker Warnings LNK4102 to LNK4549

Linker Tools Warning LNK4102


export of deleting destructor symbol name; image may not run correctly
The program has attempted to export a deleting destructor. The resulting delete may occur across a
DLL boundary such that a process can free memory that it does not own. Make sure that the given
symbol is not listed in your .DEF file, and that the symbol is not listed as an argument of the
/IMPORT or /EXPORT option in the linker command line.

Linker Tools Warning LNK4103


import of deleting destructor "symbol name"; image may not run correctly
The program has attempted to import a deleting destructor. The resulting delete may occur across a
DLL boundary such that a process can free memory that it does not own. Make sure that the given
symbol is not listed in your .DEF file, and that the symbol is not listed as an argument of the
/IMPORT or /EXPORT option in the linker command line.

Linker Tools Warning LNK4104


export of symbol "symbol" should be PRIVATE
The symbol can be one of the following:

l DllRegisterServer
l DllRegisterServerEx
l DllUnregisterServer
l DllGetClassObject
l DllCanUnloadNow

This warning is emitted when you are building an import library for a DLL and export one of the
above functions without specifying it as PRIVATE in the module-definition file. In general these
functions are exported for use only by OLE. Placing them in the import library can lead to unusual
behavior when a program linked to the library incorrectly makes calls to them.

Linker Tools Warning LNK4105


no argument specified with option option; ignoring switch
This warning occurs only when the /LIBPATH option is set. If no directory is specified with this
option, then the linker ignores this option and generates this warning message. If you do not need to
override the existing environmental library settings, remove the /LIBPATH option from the linker
command line. If you want to use an alternate search path for libraries, specify the alternate path
following the /LIBPATH option. For example: link /libpath:c:\foo\lib bar.obj would direct
the linker to search for the required libraries inc:\foo\lib before searching in the default locations.

Linker Tools Warning LNK4106


"section name" section discarded due to "option" specification
The option caused the linker to discard the section.

Linker Tools Warning LNK4107


Linker Tools Messages Page 28 of 32

"/option" not supported by this version of MSPDBxx.DLL; ignored


MSPDBxx.DLL does not support the specified option.

Linker Tools Warning LNK4108


/ALIGN specified without /DRIVER or /VXD; image may not run
The /ALIGN option has been specified without also specifying either /DRIVER or /VXD. Bad
alignment can prevent the operating system from loading the final image. Do not use the /ALIGN
option unless building a driver or vxd.

Linker Tools Warning LNK4194


/DELAYLOAD:dll name ignored
The linker cannot delay load the requested DLL.

Linker Tools Warning LNK4195


unable to load dll name
The linker could not load the requested DLL.

Linker Tools Warning LNK4197


export "exportname" specified multiple times; using first specification
An export is specified in multiple, different ways. The linker uses the first specification and ignores the
rest. Perhaps the same export is specified both on the command line (via export:) and in the .def file or
listed twice in the .def file with different attributes. If an export is specified exactly the same way
multiple times, the linker will not issue a warning.

Linker Tools Warning LNK4198


base key "keyname" not found - using default
The keyname, specified in a /BASE option, does not appear in the base address file.

Linker Tools Warning LNK4199


/DELAYLOAD:dllname ignored; no imports found from dllname
The linker ignores dllname because it does not need any of the functions that dllname exports.

Linker Tools Warning LNK4200


corrupt line number information in object file; ignored
The line number information in the object file has become corrupted. Rebuild.

Linker Tools Warning LNK4543


Section "section" with invalid attributes ignored
The linker could not determine the type of section and ignored it. Valid types for sections include text,
data, bss, and rdata.

Linker Tools Warning LNK4544


Symbol "symbol" specified with /IMPORT not referenced in application - ignored
You specified a symbol with the /IMPORT option but it was not referenced in your program so the
linker ignored it.

Linker Tools Warning LNK4545


Container "container" specified with /IMPORT not referenced in application - ignored
You specified an import library (container) with the /IMPORT option, but your program did not
Linker Tools Messages Page 29 of 32

reference the library. The linker ignored the container.

Linker Tools Warning LNK4546


Mismatch in versions detected. Container may not load. Use /VERBOSE for details.
The linker detected a problem with versions in your import libraries (containers). To find out which
container (and its version number) is causing the problem, rerun LINK with the /VERBOSE option.

Linker Tools Warning LNK4547


Setting "versiontype" to version
The linker set versiontype to version. Possible values for versiontype are CURRENTVER,
OLDCODEVER, and OLDAPIVER.

Linker Tools Warning LNK4548


Ignoring "versiontype" version
The linker ignored version information ofversiontype. The possible values of versiontype are
CURRENTVER, OLDCODEVER, and OLDAPIVER.

Linker Tools Warning LNK4549


shared library "library" does not have any exports
The shared library was ignored since it contained no exports.

Return to Main Linker Error Page

Linker Warnings LNK6001 to LNK6026

Linker Tools Warning LNK6001


insufficient disk space; performing full link
There was not enough space on disk for LINK to incrementally link the program. LINK attempted to
correct the problem and recover disk space by running a full link to recreate the incremental status
(.ILK) file.

Linker Tools Warning LNK6002


invalid .ILK file found; performing full link
The incremental status (.ILK) file was not valid. Probably the previous incremental linking session was
interrupted. LINK attempted to correct the problem by running a full link to recreate the incremental
status (.ILK) file.

Linker Tools Warning LNK6003


LINK options changed; performing full link
The options specified to the linker differed from the options used during the previous incremental
linking session. LINK attempted to correct the problem by running a full link to recreate the
incremental status (.ILK) file.

Linker Tools Warning LNK6004


filename not found or not built by the last incremental link; performing full link
The given file was either deleted or changed since the last incremental linking session. LINK
attempted to correct the problem by running a full link to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6005


Linker Tools Messages Page 30 of 32

exports changed; performing full link


One or more exports were added or deleted since the last incremental linking session. LINK attempted
to correct the problem by running a full link to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6006


program database pdbname missing; performing full link
LINK could not find the program database (.PDB) file that it created during the last incremental
linking session. LINK attempted to correct the problem by running a full link to recreate the
incremental status (.ILK) file.

Linker Tools Warning LNK6008


object file added; performing full link
An object file was added since the last incremental linking session. A full link was required in order to
recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6009


object file removed; performing full link
An object file was removed since the last incremental linking session. A full link was required in order
to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6010


library changed; performing full link
A library was modified since the last incremental linking session. A full link was required in order to
recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6011


internal limit exceeded; performing full link
An internal limit related to incremental linking was exceeded. LINK attempted to correct the problem
by running a full link to recreate the incremental status (.ILK) file. One cause of this warning is an
.ILK file that exceeds 8MB. If this size is due to the accumulation of dead space, that space will be
recovered in a full link.

Linker Tools Warning LNK6012


precompiled types found; performing full link
An object file was compiled with /Z7 and the program used a precompiled header. LINK attempted to
incrementally link by running a full link to recreate the incremental status (.ILK) file. Rebuild the
object file with /Zi.

Linker Tools Warning LNK6013


padding exhausted: performing full link
An internal limit related to incremental linking was exceeded. LINK attempted to correct the problem
by running a full link to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6014


symbol reference set changed; performing full link
A reference to a symbol in a library was added since the last incremental linking session. A full link
was required in order to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6015


Linker Tools Messages Page 31 of 32

bss (uninitialized data) change; performing full link


A bss symbol was changed since the last incremental linking session. A full link was required in order
to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6016


absolute symbol changed; performing full link
The address of an absolute symbol was changed since the last incremental linking session. A full link
was required in order to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6017


set of library modules referenced changed; performing full link
A full link was required in order to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6018


multiple definitions found for "symbol"; performing full link
A full link was required in order to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6019


directive changed; performing full link
A directive was added or deleted since the last incremental linking session. A full link was required in
order to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6020


ILK file not built by this linker; performing full link
The version number of the .ILK file was incorrect for this version of LINK. LINK attempted to
correct the problem by running a full link to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6021


performing full link
A full link was required in order to create the incremental status (.ILK) file.

Linker Tools Warning LNK6022


unable to load .ILK file; performing full link
The .incremental status (.ILK) file is unavailable because of the actions of another process.

Linker Tools Warning LNK6023


unable to extend map for .ILK file; performing full link
The .incremental status (.ILK) file cannot be written to because of the actions of another process.

Linker Tools Warning LNK6024


Mac Resource File "filename" changed; performing full link
A full link was required in order to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6025


unable to do comdat selection; performing full link
A full link was required in order to recreate the incremental status (.ILK) file.

Linker Tools Warning LNK6026


obsolete DBI format found; performing full link
Linker Tools Messages Page 32 of 32

A full link was required. The format of debugging information from Visual C++ version 4.0 or earlier.
Code that was initially linked with version 4.0 and that is now linked with a later version thus has
inconsistent debugging information. Therefore, a full link was performed to rectify the inconsistency.

Return to Main Linker Error Page


BSCMAKE Messages BK1500 through BK4503 Page 1 of 4

BSCMAKE Messages BK1500 through BK4503


7KHIROORZLQJGHVFULSWLRQVFRYHU%6&0$.((UURU%.WKURXJK:DUQLQJ%.

%6&0$.((UURU%.
81.12:1(5525
%6&0$.(GHWHFWHGDQXQNQRZQHUURUFRQGLWLRQ1RWHWKHFLUFXPVWDQFHVRIWKHHUURUWU\WR
LVRODWHWKHSUREOHPDQGFUHDWHDUHSURGXFLEOHWHVWFDVHWKHQUHSRUWWKHFLUFXPVWDQFHVWR
WHFKQLFDOVXSSRUW

%6&0$.((UURU%.
XQNQRZQFKDUDFWHU
FKDUDFWHU
LQRSWLRQ
RSWLRQ

%6&0$.(GLGQRWUHFRJQL]HWKHJLYHQFKDUDFWHUVSHFLILHGIRUWKHJLYHQRSWLRQ

%6&0$.((UURU%.
LQFRPSOHWHVSHFLILFDWLRQIRURSWLRQ
RSWLRQ

7KHJLYHQRSWLRQGLGQRWFRQWDLQWKHFRUUHFWV\QWD[

%6&0$.((UURU%.
FDQQRWZULWHWRILOH
ILOHQDPH
>UHDVRQ@
%6&0$.(FRXOGQRWZULWHWRWKHJLYHQILOH7KLVPHVVDJHPD\EHIROORZHGE\DUHDVRQIURPWKH
RSHUDWLQJV\VWHPJLYLQJDGGLWLRQDOLQIRUPDWLRQ2QHRIWKHIROORZLQJPD\KDYHRFFXUUHG

l 7KHGLVNZDVIXOO
l $KDUGZDUHHUURURFFXUUHG

%6&0$.((UURU%.
FDQQRWSRVLWLRQLQILOH
ILOHQDPH
>UHDVRQ@
%6&0$.(FRXOGQRWPRYHWRDORFDWLRQLQWKHJLYHQILOH7KLVPHVVDJHPD\EHIROORZHGE\D
UHDVRQIURPWKHRSHUDWLQJV\VWHPJLYLQJDGGLWLRQDOLQIRUPDWLRQ2QHRIWKHIROORZLQJPD\KDYH
RFFXUUHG

l 7KHGLVNZDVIXOO
l $KDUGZDUHHUURURFFXUUHG
l 7KHILOHZDVWUXQFDWHG7UXQFDWLRQFDQRFFXULIWKHFRPSLOHUUXQVRXWRIGLVNVSDFHRULV
LQWHUUXSWHGZKHQLWLVFUHDWLQJWKH6%5ILOH

%6&0$.((UURU%.
FDQQRWUHDGIURPILOH
ILOHQDPH
>UHDVRQ@
%6&0$.(FRXOGQRWUHDGIURPWKHJLYHQILOH7KLVPHVVDJHPD\EHIROORZHGE\DUHDVRQIURP
WKHRSHUDWLQJV\VWHPJLYLQJDGGLWLRQDOLQIRUPDWLRQ2QHRIWKHIROORZLQJPD\KDYHRFFXUUHG

l 7KHILOHZDVFRUUXSW
l 7KHILOHZDVWUXQFDWHG7UXQFDWLRQFDQRFFXULIWKHFRPSLOHUUXQVRXWRIGLVNVSDFHRULV
LQWHUUXSWHGZKHQLWLVFUHDWLQJWKH6%5ILOH

%6&0$.((UURU%.
FDQQRWRSHQILOH
ILOHQDPH
>UHDVRQ@
%6&0$.(FRXOGQRWRSHQWKHJLYHQILOH7KLVPHVVDJHPD\EHIROORZHGE\DPHVVDJHIURPWKH
RSHUDWLQJV\VWHPJLYLQJDGGLWLRQDOLQIRUPDWLRQ2QHRIWKHIROORZLQJPD\KDYHRFFXUUHG

l 7KHILOHZDVORFNHGE\DQRWKHUSURFHVV,IUHDVRQZDV3HUPLVVLRQGHQLHGWKHEURZVHULQ
WKHGHYHORSPHQWHQYLURQPHQWPLJKWEHXVLQJWKHILOH&ORVHWKH%URZVHZLQGRZDQG
BSCMAKE Messages BK1500 through BK4503 Page 2 of 4

UHSHDWWKHEXLOG
l 7KHGLVNZDVIXOO
l $KDUGZDUHHUURURFFXUUHG
l 7KHVSHFLILHGRXWSXWILOHKDGWKHVDPHQDPHDVDQH[LVWLQJVXEGLUHFWRU\

%6&0$.((UURU%.
FDQQRWRSHQWHPSRUDU\ILOH
ILOHQDPH
>UHDVRQ@
%6&0$.(FRXOGQRWRSHQRQHRILWVWHPSRUDU\ILOHV7KLVPHVVDJHPD\EHIROORZHGE\DUHDVRQ
IURPWKHRSHUDWLQJV\VWHPJLYLQJDGGLWLRQDOLQIRUPDWLRQ2QHRIWKHIROORZLQJPD\KDYH
RFFXUUHG

l 7KH703HQYLURQPHQWYDULDEOHZDVQRWVHWWRDYDOLGGULYHDQGGLUHFWRU\
l 7KHGLVNZDVIXOO

%6&0$.((UURU%.
FDQQRWGHOHWHWHPSRUDU\ILOH
ILOHQDPH
>UHDVRQ@
%6&0$.(FRXOGQRWGHOHWHRQHRILWVWHPSRUDU\ILOHV7KLVPHVVDJHPD\EHIROORZHGE\DUHDVRQ
IURPWKHRSHUDWLQJV\VWHPJLYLQJDGGLWLRQDOLQIRUPDWLRQ2QHRIWKHIROORZLQJPD\KDYH
RFFXUUHG

l $QRWKHUSURFHVVKDGWKHILOHRSHQ
l $KDUGZDUHHUURURFFXUUHG

%6&0$.((UURU%.
RXWRIKHDSVSDFH
%6&0$.(UDQRXWRIPHPRU\LQFOXGLQJYLUWXDOPHPRU\2QHRIWKHIROORZLQJPD\EHDVROXWLRQ

l )UHHVRPHVSDFHRQGLVN
l ,QFUHDVHWKHVL]HRIWKH:LQGRZVVZDSILOH&RQVLGHUXVLQJWKH&RQWURO3DQHO6\VWHPLFRQ
3HUIRUPDQFHWDEWRLQFUHDVH\RXUV\VWHP
VYLUWXDOPHPRU\UHERRWDQGUHWU\
l 5HGXFHWKHPHPRU\WKDW%6&0$.(ZLOOUHTXLUHE\XVLQJRQHRUPRUHRSWLRQV8VH(LRU
(VWRHOLPLQDWHVRPHLQSXWILOHV8VH(PWRHOLPLQDWHPDFURERGLHV

%6&0$.((UURU%.
FRUUXSW6%5ILOH
ILOHQDPH

7KHJLYHQ6%5ILOHLVFRUUXSWRUGRHVQRWKDYHWKHH[SHFWHGIRUPDW5HFRPSLOHWRUHJHQHUDWH
WKH6%5ILOH

%6&0$.((UURU%.
LQYDOLGUHVSRQVHILOHVSHFLILFDWLRQ
%6&0$.(GLGQRWXQGHUVWDQGWKHFRPPDQGOLQHVSHFLILFDWLRQIRUWKHUHVSRQVHILOH7KH
VSHFLILFDWLRQZDVSUREDEO\ZURQJRULQFRPSOHWH)RUH[DPSOHWKHIROORZLQJVSHFLILFDWLRQFDXVHV
WKLVHUURUbscmake @

%6&0$.((UURU%.
ILOHQDPHFDSDFLW\H[FHHGHG
%6&0$.(FRXOGQRWEXLOGDEURZVHLQIRUPDWLRQILOHEHFDXVHWKHQXPEHURIGHILQLWLRQV
UHIHUHQFHVPRGXOHVRURWKHULQIRUPDWLRQH[FHHGHGWKHOLPLW2QHRIWKHIROORZLQJPD\EHD
VROXWLRQ

l ([FOXGHVRPHLQIRUPDWLRQXVLQJWKH(P(VRU(LRSWLRQ
l 2PLWWKH,XRSWLRQLILWZDVXVHG

%6&0$.((UURU%.
BSCMAKE Messages BK1500 through BK4503 Page 3 of 4

QRQLQFUHPHQWDOXSGDWHUHTXLUHVDOO6%5ILOHV
$QDWWHPSWZDVPDGHWREXLOGDQHZEURZVHLQIRUPDWLRQ %6& ILOHEXWRQHRUPRUHRIWKH
VSHFLILHG6%5ILOHVZDVWUXQFDWHG7KLVPHVVDJHLVDOZD\VSUHFHGHGE\ZDUQLQJ%.ZKLFK
JLYHVWKHQDPHRIWKH6%5ILOHWKDWFDXVHGWKHHUURU
%6&0$.(FDQSURFHVVDWUXQFDWHGRU]HUROHQJWK6%5ILOHRQO\ZKHQD%6&ILOHDOUHDG\H[LVWV
DQGLVEHLQJLQFUHPHQWDOO\XSGDWHG2QHRIWKHIROORZLQJPD\EHDFDXVH

l 7KH%6&ILOHZDVPLVVLQJ
l 7KHZURQJILOHQDPHZDVVSHFLILHG
l 7KHILOHZDVFRUUXSWHGDQGDIXOOEXLOGZDVUHTXLUHG

%6&0$.((UURU%.
DOO6%5ILOHVWUXQFDWHGQRQHIRXQGLQILOHQDPH
1RQHRIWKH6%5ILOHVVSHFLILHGIRUDQXSGDWHZDVDSDUWRIWKHRULJLQDOEURZVHLQIRUPDWLRQ
%6& ILOH7KLVPHVVDJHLVDOZD\VSUHFHGHGE\ZDUQLQJ%.ZKLFKJLYHVWKHQDPHRIWKH
6%5ILOHWKDWFDXVHGWKHHUURU2QHRIWKHIROORZLQJPD\EHDFDXVH

l 7KHZURQJILOHQDPHZDVVSHFLILHG
l 7KHILOHZDVFRUUXSWHGDQGDIXOOEXLOGZDVUHTXLUHG

%6&0$.((UURU%.

EVFILOH
LQFRPSDWLEOHYHUVLRQFDQQRWLQFUHPHQWDOO\XSGDWH
7KHJLYHQEURZVHLQIRUPDWLRQ %6& ILOHZDVQRWFUHDWHGZLWKWKLVYHUVLRQRI%6&0$.($%6&
ILOHFDQEHLQFUHPHQWDOO\EXLOWRQO\E\WKHVDPHYHUVLRQRI%6&0$.(DVWKHRQHXVHGWRIXOO\
EXLOGWKDWILOH

%6&0$.((UURU%.

EVFILOH
FRUUXSWFDQQRWLQFUHPHQWDOO\XSGDWH
7KHJLYHQEURZVHLQIRUPDWLRQ %6& ILOHZDVFRUUXSWHGSRVVLEO\GXHWRDV\VWHPIDLOXUHGXULQJ
WKHEXLOG'HOHWHWKH%6&ILOHUHEXLOGDOO6%5ILOHVWKHQUHEXLOGWKH%6&ILOH

%6&0$.((UURU%.
VRXUFHILOHIRU
ILOHQDPH
FRPSLOHGZLWKERWK<FDQG<X
7KHJLYHQ6%5ILOHUHIHUVWRLWVHOI3UREDEO\WKHILOHZDVUHFRPSLOHGZLWKWKH<XRSWLRQDIWHU
FRPSLOLQJZLWK<F5HVHWWKHFRPSLOHURSWLRQVIRUWKHVRXUFHILOHWR<FWKHQUHEXLOGDOOWR
JHQHUDWHQHZ6%5ILOHVIRUWKHSURMHFW'RQRWVXEVHTXHQWO\FRPSLOHWKHVDPHVRXUFHILOHXVLQJ
<X

%6&0$.(:DUQLQJ%.
81.12:1:$51,1*
$QXQNQRZQZDUQLQJFRQGLWLRQZDVGHWHFWHGE\%6&0$.(1RWHWKHFLUFXPVWDQFHVRIWKH
ZDUQLQJWU\WRLVRODWHWKHSUREOHPDQGFUHDWHDUHSURGXFLEOHWHVWFDVHWKHQUHSRUWLWWR
WHFKQLFDOVXSSRUW

%6&0$.(:DUQLQJ%.
LJQRULQJXQNQRZQRSWLRQ
RSWLRQ

%6&0$.(GLGQRWUHFRJQL]HWKHJLYHQRSWLRQDQGLJQRUHGLW

%6&0$.(:DUQLQJ%.
WUXQFDWHG6%5ILOH
ILOHQDPH
QRWLQILOHQDPH
7KHJLYHQ]HUROHQJWK6%5ILOHVSHFLILHGGXULQJDQXSGDWHZDVQRWRULJLQDOO\SDUWRIWKHEURZVH
LQIRUPDWLRQ %6& ILOH,ID]HUROHQJWKILOHWKDWLVQRWSDUWRIWKHRULJLQDOEXLOGRIWKH%6&ILOHLV
VSHFLILHGGXULQJDUHEXLOGRIWKDWILOH%6&0$.(LVVXHVWKLVZDUQLQJ2QHRIWKHIROORZLQJPD\EH
DFDXVH
BSCMAKE Messages BK1500 through BK4503 Page 4 of 4

l 7KHZURQJILOHQDPHZDVVSHFLILHG
l 7KHILOHZDVGHOHWHG (UURU%.ZLOOUHVXOW 
l 7KHILOHZDVFRUUXSWHGUHTXLULQJDIXOOEXLOG

%6&0$.(:DUQLQJ%.
PLQRUHUURULQ6%5ILOH
ILOHQDPH
LJQRUHG
7KHJLYHQ6%5ILOHFRQWDLQHGDQHUURUWKDWGLGQRWKDOWWKHEXLOG+RZHYHUWKHUHVXOWLQJ%6&
ILOHPD\QRWEHFRUUHFW5HFRPSLOHWRUHJHQHUDWHWKH6%5ILOH
C Run-Time Errors R6002 through R6025 Page 1 of 3

C Run-Time Errors R6002 through R6025


7KHIROORZLQJGHVFULSWLRQVFRYHU&5XQ7LPH(UURUV5WKURXJK5IRUPL[HGODQJXDJH
SURJUDPPLQJ

&5XQ7LPH(UURU5
IORDWLQJSRLQWVXSSRUWQRWORDGHG
7KHSURJUDPQHHGVWKHIORDWLQJSRLQWOLEUDU\EXWWKHOLEUDU\ZDVQRWOLQNHGWRWKHSURJUDP2QH
RIWKHIROORZLQJPD\KDYHRFFXUUHG

l 7KHSURJUDPZDVFRPSLOHGRUOLQNHGZLWKDQRSWLRQ VXFKDV)3L WKDWUHTXLUHGD


FRSURFHVVRUEXWWKHSURJUDPZDVUXQRQDPDFKLQHWKDWGLGQRWKDYHDFRSURFHVVRU
LQVWDOOHG
l $IRUPDWVWULQJIRUDSULQWIRUVFDQIIXQFWLRQFRQWDLQHGDIORDWLQJSRLQWIRUPDW
VSHFLILFDWLRQDQGWKHSURJUDPGLGQRWFRQWDLQDQ\IORDWLQJSRLQWYDOXHVRUYDULDEOHV
l 7KHFRPSLOHUPLQLPL]HVDSURJUDP
VVL]HE\ORDGLQJIORDWLQJSRLQWVXSSRUWRQO\ZKHQ
QHFHVVDU\7KHFRPSLOHUFDQQRWGHWHFWIORDWLQJSRLQWIRUPDWVSHFLILFDWLRQVLQIRUPDW
VWULQJVVRLWGRHVQRWORDGWKHQHFHVVDU\IORDWLQJSRLQWURXWLQHV
l 8VHDIORDWLQJSRLQWDUJXPHQWWRFRUUHVSRQGWRWKHIORDWLQJSRLQWIRUPDWVSHFLILFDWLRQRU
SHUIRUPDIORDWLQJSRLQWDVVLJQPHQWHOVHZKHUHLQWKHSURJUDP7KLVFDXVHVIORDWLQJSRLQW
VXSSRUWWREHORDGHG
l ,QDPL[HGODQJXDJHSURJUDPD&OLEUDU\ZDVVSHFLILHGEHIRUHD)2575$1OLEUDU\ZKHQ
WKHSURJUDPZDVOLQNHG5HOLQNDQGVSHFLI\WKH&OLEUDU\ODVW

&5XQ7LPH(UURU5
QRWHQRXJKPHPRU\RQBH[HF
1RWHQRXJKPHPRU\ZDVDYDLODEOHWRORDGWKHSURFHVVEHLQJVSDZQHG7KLVHUURURFFXUVZKHQD
FKLOGSURFHVVWKDWZDVVSDZQHGE\RQHRIWKHBH[HFOLEUDU\URXWLQHVIDLOVDQGWKHRSHUDWLQJ
V\VWHPFDQQRWUHWXUQFRQWUROWRWKHSDUHQWSURFHVV

&5XQ7LPH(UURU5
LQYDOLGIRUPDWRQBH[HF
7KHILOHWREHH[HFXWHGE\RQHRIWKHBH[HFIXQFWLRQVZDVQRWLQWKHFRUUHFWIRUPDWIRUDQ
H[HFXWDEOHILOH7KLVHUURURFFXUVZKHQDFKLOGSURFHVVWKDWZDVVSDZQHGE\RQHRIWKHBH[HF
OLEUDU\URXWLQHVIDLOVDQGWKHRSHUDWLQJV\VWHPFDQQRWUHWXUQFRQWUROWRWKHSDUHQWSURFHVV

&5XQ7LPH(UURU5
LQYDOLGHQYLURQPHQWRQBH[HF
'XULQJDFDOOWRDQBH[HFIXQFWLRQWKHRSHUDWLQJV\VWHPIRXQGWKDWWKHFKLOGSURFHVVZDVJLYHQ
DQLQYDOLGHQYLURQPHQWEORFN7KLVHUURURFFXUVZKHQDFKLOGSURFHVVWKDWZDVVSDZQHGE\RQH
RIWKHBH[HFOLEUDU\URXWLQHVIDLOVDQGWKHRSHUDWLQJV\VWHPFDQQRWUHWXUQFRQWUROWRWKHSDUHQW
SURFHVV

&5XQ7LPH(UURU5
QRWHQRXJKVSDFHIRUDUJXPHQWV
7KHUHZDVHQRXJKPHPRU\WRORDGWKHSURJUDPEXWQRWHQRXJKPHPRU\WRFUHDWHWKHDUJY
DUUD\2QHRIWKHIROORZLQJPD\EHDVROXWLRQ

l ,QFUHDVHWKHDPRXQWRIYLUWXDOPHPRU\DYDLODEOHWRWKHSURJUDP&RQVLGHUXVLQJWKH
&RQWURO3DQHO6\VWHPLFRQ3HUIRUPDQFHWDEWRLQFUHDVH\RXUV\VWHP
VYLUWXDOPHPRU\
UHERRWDQGUHWU\
l 5HGXFHWKHQXPEHUDQGVL]HRIFRPPDQGOLQHDUJXPHQWV
l 5HGXFHWKHHQYLURQPHQWVL]HE\UHPRYLQJXQQHFHVVDU\YDULDEOHV
C Run-Time Errors R6002 through R6025 Page 2 of 3

&5XQ7LPH(UURU5
QRWHQRXJKVSDFHIRUHQYLURQPHQW
7KHUHZDVHQRXJKPHPRU\WRORDGWKHSURJUDPEXWQRWHQRXJKPHPRU\WRFUHDWHWKHHQYS
DUUD\2QHRIWKHIROORZLQJPD\EHDVROXWLRQ

l ,QFUHDVHWKHDPRXQWRIPHPRU\DYDLODEOHWRWKHSURJUDP
l 5HGXFHWKHQXPEHUDQGVL]HRIFRPPDQGOLQHDUJXPHQWV
l 5HGXFHWKHHQYLURQPHQWVL]HE\UHPRYLQJXQQHFHVVDU\YDULDEOHV

,I\RXUSURJUDPXVHVWKHFRPSDFWODUJHRUKXJHPHPRU\PRGHOWKLVHUURUPD\EHDYRLGHGE\
XVLQJ/,1.
V&3$50FRPPDQGOLQHRSWLRQ7KLVRSWLRQFDXVHVXQXVHGQHDUKHDSVSDFHWREH
DOORFDWHGWRWKHIDUKHDS

&5XQ7LPH(UURU5
QRWHQRXJKVSDFHIRUWKUHDGGDWD
7KHSURJUDPGLGQRWUHFHLYHHQRXJKPHPRU\IURPWKHRSHUDWLQJV\VWHPWRFRPSOHWHD
BEHJLQWKUHDGFDOO:KHQDQHZWKUHDGLVVWDUWHGWKHOLEUDU\PXVWFUHDWHDQLQWHUQDOGDWDEDVHIRU
WKHWKUHDG,IWKHGDWDEDVHFDQQRWEHH[SDQGHGZLWKPHPRU\SURYLGHGE\WKHRSHUDWLQJV\VWHP
WKHWKUHDGZLOOQRWEHJLQDQGWKHFDOOLQJSURFHVVZLOOVWRS

&5XQ7LPH(UURU5
XQH[SHFWHGPXOWLWKUHDGORFNHUURU
7KHSURFHVVUHFHLYHGDQXQH[SHFWHGHUURUZKLOHWU\LQJWRDFFHVVD&UXQWLPHPXOWLWKUHDGORFN
RQDV\VWHPUHVRXUFH7KLVHUURUXVXDOO\RFFXUVLIWKHSURFHVVLQDGYHUWHQWO\DOWHUVWKHUXQWLPH
KHDSGDWD+RZHYHULWFDQDOVREHFDXVHGE\DQLQWHUQDOHUURULQWKHUXQWLPHRURSHUDWLQJ
V\VWHPFRGH

&5XQ7LPH(UURU5
XQH[SHFWHGKHDSHUURU
7KHSURJUDPHQFRXQWHUHGDQXQH[SHFWHGHUURUZKLOHSHUIRUPLQJDPHPRU\PDQDJHPHQW
RSHUDWLRQ7KLVHUURUXVXDOO\RFFXUVLIWKHSURJUDPLQDGYHUWHQWO\DOWHUVWKHUXQWLPHKHDSGDWD
+RZHYHULWFDQDOVREHFDXVHGE\DQLQWHUQDOHUURULQWKHUXQWLPHRURSHUDWLQJV\VWHPFRGH,I
\RXUFRPSLOHUSURYLGHVDOLEUDU\FRQWDLQLQJBKHDSFKNDQGBKHDSZDON\RXFDQXVHWKHVH
IXQFWLRQVWRGLDJQRVHWKLVHUURU

&5XQ7LPH(UURU5
XQDEOHWRRSHQFRQVROHGHYLFH
7KHSURJUDPFDOOHGDFRQVROHIXQFWLRQGHFODUHGLQ&21,2+EXWWKHRSHUDWLQJV\VWHPGLGQRW
JUDQWDFFHVVWRWKHFRQVROH

&5XQ7LPH(UURU5
QRPDLQSURFHGXUH
7KHSURJUDPGRHVQRWKDYHDSURFHGXUHFDOOHGPDLQ0DNHVXUHWKDWDOOREMHFWDQGOLEUDU\
PRGXOHVKDYHEHHQOLQNHGLQWRWKHH[HFXWDEOH

&5XQ7LPH(UURU5
QRWHQRXJKVSDFHIRUBRQH[LWDWH[LWWDEOH
7KHUHZDVQRPHPRU\DYDLODEOHIRUWKHBRQH[LWRUDWH[LWIXQFWLRQ7KLVHUURULVFDXVHGE\DORZ
PHPRU\FRQGLWLRQ

&5XQ7LPH(UURU5
SXUHYLUWXDOIXQFWLRQFDOO
C Run-Time Errors R6002 through R6025 Page 3 of 3

1RREMHFWKDVEHHQLQVWDQWLDWHGWRKDQGOHWKHSXUHYLUWXDOIXQFWLRQFDOO7KLVHUURULVFDXVHGE\
FDOOLQJDYLUWXDOIXQFWLRQLQDQDEVWUDFWEDVHFODVVWKURXJKDSRLQWHUWKDWLVFUHDWHGE\DFDVWWR
WKHW\SHRIWKHGHULYHGFODVVEXWLVDFWXDOO\DSRLQWHUWRWKHEDVHFODVV7KLVFDQRFFXUZKHQ
FDVWLQJIURPDYRLG WRDSRLQWHUWRDFODVVZKHQWKHYRLG ZDVFUHDWHGGXULQJWKHFRQVWUXFWLRQ
RIWKHEDVHFODVV
CVPACK Messages CK1001 through CK4010 Page 1 of 4

CVPACK Messages CK1001 through CK4010


7KHIROORZLQJGHVFULSWLRQVFRYHU&93$&.HUURU&.WKURXJKZDUQLQJ&.

&93$&.)DWDO(UURU&.
RXWRIPHPRU\
&93$&.UDQRXWRIPHPRU\2QHRIWKHIROORZLQJPD\EHDVROXWLRQ

l )UHHVRPHVSDFHRQGLVN
l ,QFUHDVHWKHYLUWXDOPHPRU\DYDLODEOH&RQVLGHUXVLQJWKH&RQWURO3DQHO6\VWHPLFRQ
3HUIRUPDQFHWDEWRLQFUHDVH\RXUV\VWHP
VYLUWXDOPHPRU\UHERRWDQGUHWU\
l 5HFRPSLOHRQHRUPRUHRIWKHREMHFWILOHVZLWKRXWGHEXJJLQJLQIRUPDWLRQ,IWKHILOHZDV
FRPSLOHGXVLQJGHEXJIXOO RU=LRU= HLWKHUXVHGHEXJPLQLPDO RU=G RUGRQRW
XVHDGHEXJJLQJRSWLRQ

&93$&.)DWDO(UURU&.
RXWRIPHPRU\
&93$&.UDQRXWRIPHPRU\2QHRIWKHIROORZLQJPD\EHDVROXWLRQ

l )UHHVRPHVSDFHRQGLVN
l ,QFUHDVHWKHVL]HRIWKH:LQGRZV17SDJLQJILOHRUWKH:LQGRZVVZDSILOH
l 5HFRPSLOHRQHRUPRUHRIWKHREMHFWILOHVZLWKRXWGHEXJJLQJLQIRUPDWLRQ,IWKHILOHZDV
FRPSLOHGXVLQJ=LRU=HLWKHUXVH=GRUGRQRWXVHDGHEXJJLQJRSWLRQ

&93$&.)DWDO(UURU&.
FDQQRWRSHQILOHILOHQDPH
&93$&.FRXOGQRWRSHQWKHJLYHQILOH2QHRIWKHIROORZLQJPD\EHDFDXVH

l 7KHILOHGRHVQRWH[LVW&KHFNWKHVSHOOLQJRIWKHILOHQDPHDQGSDWK
l 7KHILOHZDVRSHQHGRUGHOHWHGE\DQRWKHUSURFHVV
l 7KHUHZDVQRWHQRXJKVSDFHRQGLVN

&93$&.)DWDO(UURU&.
ILOHQDPHLVUHDGRQO\
7KHJLYHQILOHLVDUHDGRQO\ILOHRUWKHSDWKLVRQDUHDGRQO\GULYH

&93$&.)DWDO(UURU&.
LQYDOLGH[HFXWDEOHILOH
&93$&.FRXOGQRWSURFHVVWKHH[HFXWDEOHILOH2QHRIWKHIROORZLQJPD\EHDFDXVH

l 7KHGHEXJJLQJLQIRUPDWLRQLQWKHH[HFXWDEOHILOHLVFRUUXSW
l 7KHH[HFXWDEOHILOHLVD]HUROHQJWKILOH

&93$&.)DWDO(UURU&.
LQYDOLGPRGXOHPRGXOH
7KHPRGXOHGRHVQRWKDYHDYDOLGIRUPDWRULVFRUUXSW5HFRPSLOHDQGUHOLQN

&93$&.)DWDO(UURU&.
LQYDOLGWDEOHWDEOHLQPRGXOHPRGXOH
7KHJLYHQWDEOHLQWKHJLYHQREMHFWILOHLVQRWYDOLGRUWKHPRGXOHLVFRUUXSW5HFRPSLOHDQG
UHOLQN,IWKHHUURUUHFXUVWU\XVLQJGLIIHUHQWRSWLRQV
CVPACK Messages CK1001 through CK4010 Page 2 of 4

&93$&.)DWDO(UURU&.
FDQQRWZULWHRXWSXWILOH
7KHGLVNLVSUREDEO\IXOO7KLVHUURUOHDYHVDFRUUXSWILOHRQGLVN

&93$&.)DWDO(UURU&.
W\SHLQIRUPDWLRQFRUUXSWUHFRPSLOHPRGXOHPRGXOHQDPH
7KHJLYHQREMHFWILOHFRQWDLQVFRUUXSWHGLQIRUPDWLRQ5HFRPSLOH7U\FRPSLOLQJZLWKDGLIIHUHQW
GHEXJNH\ZRUG

&93$&.)DWDO(UURU&.
QRGHEXJJLQJLQIRUPDWLRQ
7KHH[HFXWDEOHILOHGRHVQRWFRQWDLQGHEXJJLQJLQIRUPDWLRQ'RRQHRIWKHIROORZLQJ

l 7RSXWDWOHDVWPLQLPDOGHEXJJLQJLQIRUPDWLRQLQWRWKHH[HFXWDEOHILOHOLQNXVLQJWKH
'(%8*RSWLRQ
l 7RLQFOXGHIXOOGHEXJJLQJLQIRUPDWLRQLQDQREMHFWILOHFRPSLOHRUDVVHPEOHXVLQJWKH=L
RU=RSWLRQ
l 7RLQFOXGHPLQLPDOLQIRUPDWLRQDQGOLQHQXPEHUVLQDQREMHFWILOHFRPSLOHRUDVVHPEOH
XVLQJWKH=GRSWLRQ

&93$&.)DWDO(UURU&.
LQFRPSDWLEOHYHUVLRQRIGHEXJJLQJLQIRUPDWLRQ
2QHRIWKHIROORZLQJKDVRFFXUUHG

l 7KHH[HFXWDEOHILOHZDVOLQNHGXVLQJDQREVROHWHRUXQVXSSRUWHGOLQNHU
l 7KHH[HFXWDEOHILOHZDVDOUHDG\SDFNHGXVLQJDSUHYLRXVYHUVLRQRI&93$&.
l 7KHH[HFXWDEOHILOHLVFRUUXSW5HFRPSLOHDQGUHOLQN

&93$&.)DWDO(UURU&.
FDQQRWILQGSUHFRPSLOHGW\SHVILOHUHOLQNZLWKILOHQDPH
7KHSURJUDPXVHGDSUHFRPSLOHGKHDGHUEXWWKHSURJUDPZDVOLQNHGZLWKRXWILOHQDPH7KLVILOH
LVWKHREMHFWILOHWKDWZDVFUHDWHGZKHQWKHKHDGHUZDVSUHFRPSLOHG,IWKHSURJUDPXVHVD
OLEUDU\WKDWZDVFUHDWHGXVLQJSUHFRPSLOHGKHDGHUVWKHQILOHQDPHZDVQRWOLQNHGIURPWKH
OLEUDU\2QHRIWKHIROORZLQJPD\EHDVROXWLRQ

l ([WUDFWWKHREMHFWIURPWKHOLEUDU\DQGOLQNLWWRWKHSURJUDPH[SOLFLWO\
l )RUFH/,1.WRLQFOXGHWKHREMHFWLQWKHSURJUDPE\VSHFLI\LQJWKH,1&/8'(RSWLRQZLWKD
V\PEROIURPWKHREMHFW
l &KDQJHWKHVRXUFHFRGHVRWKDWFRGHRUGDWDLQILOHQDPHLVUHIHUHQFHGHLWKHUIURPDQ
REMHFWILOHWKDWXVHVWKHOLEUDU\RUIURPDQRWKHUPRGXOHWKDWLVEHLQJOLQNHGIURPWKH
OLEUDU\

&93$&.)DWDO(UURU&.
XVHUILOHFDQQRWXVHSUHFRPSLOHGW\SHVILOHSFWILOHW\SHFRXQWVGRQRWPDWFK
7KHXVHUILOHXVHVWKHSUHFRPSLOHGW\SHVILOHSFWILOHEXWSFWILOHGRHVQRWFRQWDLQWKHFRUUHFW
QXPEHURIW\SHVIRUXVHUILOH5HFRPSLOHXVHUILOHDQGUHOLQN,IDPDNHILOHLVXVHGFKHFNWKH
PDNHILOHGHSHQGHQFLHV

&93$&.)DWDO(UURU&.
XVHUILOHFDQQRWXVHSUHFRPSLOHGW\SHVILOHSFWILOHVLJQDWXUHVGRQRWPDWFK
7KHXVHUILOHXVHVWKHSUHFRPSLOHGW\SHVILOHSFWILOHEXWWKHLQWHUQDOVLJQDWXUHLQSFWILOHGRHVQRW
PDWFKWKHLQWHUQDOVLJQDWXUHLQXVHUILOH3UREDEO\SFWILOHZDVUHEXLOWEXWXVHUILOHZDVQRWUHEXLOW
5HFRPSLOHXVHUILOHDQGUHOLQN,IDPDNHILOHLVXVHGFKHFNWKHPDNHILOHGHSHQGHQFLHV
CVPACK Messages CK1001 through CK4010 Page 3 of 4

&93$&.)DWDO(UURU&.
FDQQRWRSHQSURJUDPGDWDEDVHSGEILOH
&93$&.FRXOGQRWRSHQWKHJLYHQSURJUDPGDWDEDVH 3'%ILOH 2QHRIWKHIROORZLQJPD\EHD
FDXVH

l 7KH3'%ILOHGRHVQRWH[LVW&KHFNWKHVSHOOLQJRIWKHILOHQDPHDQGSDWK
l 7KH3'%ILOHZDVRSHQHGRUGHOHWHGE\DQRWKHUSURFHVV

&93$&.DQG/,1.ORRNIRU3'%ILOHVLQWKHIROORZLQJORFDWLRQVLQWKLVRUGHU

 :KHUHWKH(;(RU'//UHVLGHV WKHDEVROXWHSDWKZULWWHQLQWKH2%-ILOH 
 :KHUHWKH2%-RU'//LVRSHQHGIURP

<RXFDQQRWVSHFLI\D3'%ILOH
VQDPHRUORFDWLRQRQWKHFRPPDQGOLQH

&93$&.)DWDO(UURU&.
PRGXOHQDPHFDQQRWXVHSURJUDPGDWDEDVHSGEILOHPRGXOHQHZHUWKDQGDWDEDVH
7KH2%-ILOHPRGXOHQDPHXVHVWKH3'%ILOHSGEILOHEXWSGEILOHLVROGHUWKDQPRGXOHQDPH
5HFRPSLOHDQGUHOLQN,IDPDNHILOHLVXVHGFKHFNWKHPDNHILOHGHSHQGHQFLHV

&93$&.)DWDO(UURU&.
PRGXOHQDPHFDQQRWXVHSURJUDPGDWDEDVHSGEILOHVLJQDWXUHVGRQRWPDWFK
7KH2%-ILOHPRGXOHQDPHXVHVWKH3'%ILOHSGEILOHEXWWKHLQWHUQDOVLJQDWXUHLQSGEILOHGRHV
QRWPDWFKWKHLQWHUQDOVLJQDWXUHLQPRGXOHQDPH'HOHWHPRGXOHQDPHUHFRPSLOHDQGUHOLQN,I
DPDNHILOHLVXVHGFKHFNWKHPDNHILOHGHSHQGHQFLHV

&93$&.)DWDO(UURU&.
LQFRUUHFW&2))V\PEROWDEOH
&93$&.ZDVXQDEOHWRLQWHUSUHWWKH&2))V\PEROVHPLWWHGE\WKHFRPSLOHU5HFRPSLOHDQG
UHOLQN

&93$&.)DWDO(UURU&.
\RXKDYHDFFHVVHGDQLQFRUUHFWYHUVLRQRI063'%'//UHFKHFN\RXULQVWDOODWLRQ

&93$&.)DWDO(UURU&.
ILOHFRPSLOHG<F<X=FDQQRWFUHDWHGHEXJLQIRUHFRPSLOHDOOZLWK=L
<RXFUHDWHGWZR3&+ILOHVRQHEDVHGRQWKHRWKHUXVLQJWKH=FRPSLOHURSWLRQ2QO\RQH
SUHFRPSLOHGW\SHREMHFWFDQEHUHIHUHQFHG7KHRQO\ZD\WRXVH3&+ILOHVEDVHGRQRWKHU3&+
ILOHVLVWRXVHWKH=LFRPSLOHURSWLRQWRSXWDOOW\SHVLQWKH3'%ILOH

&93$&.:DUQLQJ&.
ILOHDOUHDG\SDFNHG
&93$&.WRRNQRDFWLRQEHFDXVHWKHH[HFXWDEOHILOHKDVDOUHDG\EHHQSURFHVVHGE\WKLVYHUVLRQRI
&93$&.

&93$&.:DUQLQJ&.
HUURULQOH[LFDOVFRSHVIRUPRGXOHPRGXOHV\PEROVGHOHWHG
7KHVFRSLQJRIV\PEROVLQWKHJLYHQREMHFWPRGXOHZDVFRUUXSWHG&93$&.GHOHWHGWKHV\PEROV
LQWKHPRGXOH7KLVLVSUREDEO\DFRPSLOHUHUURU5HFRPSLOHDQGUHOLQNWKHREMHFWILOH

&93$&.:DUQLQJ&.
XQUHFRJQL]HGV\PEROVGLVFDUGHGUHFRPSLOHPRGXOHPRGXOHQDPH
7KHFRPSLOHUJHQHUDWHGDQLQYDOLGV\PEROUHFRUGLQWKHPRGXOHQDPHREMHFWILOH&93$&.
CVPACK Messages CK1001 through CK4010 Page 4 of 4

GLVFDUGHGWKHUHFRUG7KHGHEXJJHUFDQUXQWKHUHVXOWLQJH[HFXWDEOHILOH+RZHYHUWKHV\PERO
ZLOOEHDFFHVVLEOHRQO\E\WKHGHFRUDWHGQDPHNQRZQWRWKHOLQNHUDQGGLVSOD\RIWKHV\PEROZLOO
EHOLPLWHG7RVHHGHFRUDWHGQDPHVRILGHQWLILHUVXVH'803%,181'(&25$7(

&93$&.:DUQLQJ&.
XQUHFRJQL]HGW\SHFRQYHUWHGWR18//UHFRPSLOHPRGXOHPRGXOHQDPH
7KHFRPSLOHUJHQHUDWHGDQLQYDOLGW\SHUHFRUGLQWKHPRGXOHQDPHREMHFWILOH&93$&.GLVFDUGHG
WKHUHFRUG7KHGHEXJJHUFDQUXQWKHUHVXOWLQJH[HFXWDEOHILOHEXWGLVSOD\RIREMHFWVWKDW
UHIHUHQFHWKHLQYDOLGW\SHZLOOEHOLPLWHG

&93$&.:DUQLQJ&.
W\SHOHQJWKOLPLWH[FHHGHGFRQYHUWHGWR18//
$VWUXFWHQXPXQLRQRUFODVVZDVWRRODUJHIRU&93$&.WRSURFHVV<RXFDQXVHWKHH[HFXWDEOH
ILOHZLWKWKHGHEXJJHUEXW\RXFDQQRWUHIHUHQFHWKHREMHFWRUW\SHZKLOHGHEXJJLQJ

&93$&.:DUQLQJ&.
XQUHFRJQL]HGRSWLRQRSWLRQRSWLRQLJQRUHG
7KHJLYHQRSWLRQLVQRWDYDOLG&93$&.RSWLRQ&93$&.LJQRUHGWKHVSHFLILFDWLRQDQGDWWHPSWHG
WRUXQXVLQJWKHUHVWRIWKHFRPPDQGOLQH

&93$&.:DUQLQJ&.
VRXUFHOLQHOLPLWH[FHHGHGLQPRGXOHILOHQDPHVRXUFHOLQHLQIRGLVFDUGHG
&93$&.FRXOGQRWWUDQVODWHWKHGHEXJJLQJLQIRUPDWLRQLQWKHJLYHQILOHQDPHPRGXOHEHFDXVH
ILOHQDPHZDVWRRODUJH&93$&.GLVFDUGHGWKHGHEXJJLQJLQIRUPDWLRQIRUWKLVPRGXOH%UHDNXS
WKHPRGXOHLQWRVPDOOHUILOHV

&93$&.:DUQLQJ&.
H[FHHGHG.W\SHVDWPRGXOHGLVFDUGLQJVXEVHTXHQWW\SHV
7KHGHEXJJLQJLQIRUPDWLRQH[FHHGHGD&93$&.OLPLW2QHRIWKHIROORZLQJPD\EHDVROXWLRQ

l &RPSLOHVRPHREMHFWILOHVZLWKRXWGHEXJJLQJLQIRUPDWLRQ
l $YRLGLQFOXGLQJXQQHHGHGKHDGHUILOHV

7KHFKHFNVXPFDQEHFDOFXODWHGRQO\ZKHQUXQQLQJRQ:LQGRZV17

&93$&.:DUQLQJ&.
FDQQRWXSGDWHFKHFNVXP
7KHFKHFNVXPFDQEHFDOFXODWHGRQO\ZKHQUXQQLQJRQ:LQGRZV17
CVTRES Messages CVT1100 through CVT4001 Page 1 of 2

CVTRES Messages CVT1100 through CVT4001


7KHIROORZLQJGHVFULSWLRQVFRYHU&97WKURXJKZDUQLQJ&97

&975(6)DWDO(UURU&97
GXSOLFDWHUHVRXUFHW\SHW\SHQDPHQDPHODQJXDJHODQJXDJHIODJVIODJVVL]HVL]H
7KHJLYHQUHVRXUFHZDVVSHFLILHGPRUHWKDQRQFH

&975(6)DWDO(UURU&97
FDQQRWRSHQILOHQDPHIRUUHDGLQJ
&975(6FRXOGQRWRSHQDQGUHDGWKHJLYHQILOH2QHRIWKHIROORZLQJPD\EHDFDXVH

l 7KHILOHGRHVQRWH[LVW&KHFNWKHVSHOOLQJRIWKHILOHQDPHDQGSDWK
l 7KHILOHGRHVQRWKDYHUHDGSHUPLVVLRQ
l 7KHILOHZDVRSHQHGRUGHOHWHGE\DQRWKHUSURFHVV
l 7KHUHZDVQRWHQRXJKVSDFHRQGLVN

&975(6)DWDO(UURU&97
RXWRIPHPRU\VL]HE\WHVUHTXLUHG
7KHUHZDVQRWHQRXJKPHPRU\IRU&975(6WRFRPSOHWHWKHRSHUDWLRQ

&975(6)DWDO(UURU&97
FDQQRWUHDGILOHQDPH
$QXQUHFRYHUDEOHHUURURFFXUUHGZKHQ&975(6DWWHPSWHGWRUHDGWKHJLYHQILOH3RVVLEO\WKHILOH
LVFRUUXSW

&975(6)DWDO(UURU&97
FDQQRWJHWORFDWLRQLQILOH
&975(6FRXOGQRWGHWHUPLQHWKHFXUUHQWORFDWLRQLQWKHILOH3RVVLEO\WKHILOHLVFRUUXSW

&975(6)DWDO(UURU&97
FDQQRWVHHNLQILOH
&975(6FRXOGQRWJRWRDORFDWLRQLQWKHILOH3RVVLEO\WKHILOHLVFRUUXSW

&975(6)DWDO(UURU&97
FDQQRWZULWHWRILOH
$QXQUHFRYHUDEOHHUURURFFXUUHGZKHQ&975(6DWWHPSWHGWRZULWHWRWKHJLYHQILOH

&975(6)DWDO(UURU&97
ILOHQDPHLVFRUUXSW
7KHJLYHQILOHLVQRWDYDOLGUHVRXUFHILOH

&975(6)DWDO(UURU&97
FDQQRWRSHQILOHQDPHIRUZULWLQJ
&975(6FRXOGQRWRSHQDQGZULWHWRWKHJLYHQILOH2QHRIWKHIROORZLQJPD\EHDFDXVH

l 7KHILOHGRHVQRWH[LVW&KHFNWKHVSHOOLQJRIWKHILOHQDPHDQGSDWK
l 7KHILOHGRHVQRWKDYHZULWHSHUPLVVLRQ
l 7KHILOHZDVRSHQHGRUGHOHWHGE\DQRWKHUSURFHVV
l 7KHUHZDVQRWHQRXJKVSDFHRQGLVN

&975(6:DUQLQJ&97
CVTRES Messages CVT1100 through CVT4001 Page 2 of 2

PDFKLQHW\SHQRWVSHFLILHGDVVXPHGW\SH
&975(6GLGQRWILQGDPDFKLQHVSHFLILFDWLRQ,WDVVXPHGWKHJLYHQPDFKLQHW\SH,IWKHGHIDXOW
LVLQFRUUHFWUHUXQ&975(6XVLQJWKH0$&+,1(RSWLRQ
Math Errors M6101 through M6205 (x86 only) Page 1 of 2

Math Errors M6101 through M6205 (x86 only)


7KHIROORZLQJGHVFULSWLRQVFRYHU0DWK(UURUV0WKURXJK0ZKLFKFDQRFFXURQ[
V\VWHPV$OORIWKHVHPDWKHUURUVWHUPLQDWHWKHSURJUDPZLWKDQH[LWFRGHRI DVHYHUHHUURU 

0DWK(UURU0
LQYDOLG
$QLQYDOLGRSHUDWLRQRFFXUUHG7KLVHUURUXVXDOO\RFFXUVZKHQWKHRSHUDQGLV1D1 QRWDQXPEHU 
RULQILQLW\

0DWK(UURU0
GHQRUPDO
$YHU\VPDOOIORDWLQJSRLQWQXPEHUZDVJHQHUDWHGZKLFKPD\QRORQJHUEHYDOLGEHFDXVHRID
ORVVRIVLJQLILFDQFH'HQRUPDOIORDWLQJSRLQWH[FHSWLRQVDUHXVXDOO\PDVNHGFDXVLQJWKHPWREH
WUDSSHGDQGRSHUDWHGXSRQ

0DWK(UURU0
GLYLGHE\
$IORDWLQJSRLQWRSHUDWLRQDWWHPSWHGWRGLYLGHE\]HUR

0DWK(UURU0
RYHUIORZ
$QRYHUIORZRFFXUUHGLQDIORDWLQJSRLQWRSHUDWLRQ

0DWK(UURU0
XQGHUIORZ
$QXQGHUIORZRFFXUUHGLQDIORDWLQJSRLQWRSHUDWLRQ8QGHUIORZIORDWLQJSRLQWH[FHSWLRQVDUH
XVXDOO\PDVNHGFDXVLQJWKHXQGHUIORZLQJYDOXHWREHUHSODFHGE\

0DWK(UURU0
LQH[DFW
/RVVRISUHFLVLRQRFFXUUHGLQDIORDWLQJSRLQWRSHUDWLRQ7KLVH[FHSWLRQLVXVXDOO\PDVNHG0DQ\
IORDWLQJSRLQWRSHUDWLRQVFDXVHDORVVRISUHFLVLRQ

0DWK(UURU0
XQHPXODWHG
$QDWWHPSWZDVPDGHWRH[HFXWHDFRSURFHVVRULQVWUXFWLRQWKDWLVLQYDOLGRULVQRWVXSSRUWHGE\
WKHHPXODWRU

0DWK(UURU0
VTXDUHURRW
7KHRSHUDQGLQDVTXDUHURRWRSHUDWLRQZDVQHJDWLYH

1RWH7KHVTUWIXQFWLRQLQWKH&UXQWLPHOLEUDU\DQGWKH)2575$1LQWULQVLFIXQFWLRQ6457GR
QRWJHQHUDWHWKLVHUURU7KH&VTUWIXQFWLRQFKHFNVWKHDUJXPHQWEHIRUHSHUIRUPLQJWKH
RSHUDWLRQDQGUHWXUQVDQHUURUYDOXHLIWKHRSHUDQGLVQHJDWLYH7KH)2575$16457IXQFWLRQ
JHQHUDWHVWKH0DWK(UURU0

0DWK(UURU0
VWDFNRYHUIORZ
$IORDWLQJSRLQWH[SUHVVLRQFDXVHGDVWDFNRYHUIORZRQWKHFRSURFHVVRURUWKH
HPXODWRU6WDFNRYHUIORZIORDWLQJSRLQWH[FHSWLRQVDUHWUDSSHGXSWRDOLPLWRIVHYHQOHYHOVLQ
DGGLWLRQWRWKHHLJKWOHYHOVXVXDOO\VXSSRUWHGE\WKHFRSURFHVVRU
Math Errors M6101 through M6205 (x86 only) Page 2 of 2

0DWK(UURU0
VWDFNXQGHUIORZ
$IORDWLQJSRLQWRSHUDWLRQUHVXOWHGLQDVWDFNXQGHUIORZRQWKHFRSURFHVVRURUWKH
HPXODWRU7KLVHUURULVRIWHQFDXVHGE\DFDOOWRDORQJGRXEOHIXQFWLRQWKDWGRHVQRWUHWXUQD
YDOXH

0DWK(UURU0

IXQFWLRQ
B'20$,1HUURU
$QDUJXPHQWWRWKHJLYHQIXQFWLRQZDVRXWVLGHWKHGRPDLQRIOHJDOLQSXWYDOXHVIRUWKDW
IXQFWLRQ)RUH[DPSOHWKHIROORZLQJVWDWHPHQWVJHQHUDWHWKLVHUURU
result = sqrt(-1.0) &VWDWHPHQW
result = SQRT(-1.0) )2575$1VWDWHPHQW

0DWK(UURU0

IXQFWLRQ
B6,1*HUURU
$QDUJXPHQWWRWKHJLYHQIXQFWLRQZDVDVLQJXODULW\YDOXHIRUWKLVIXQFWLRQ7KHIXQFWLRQLVQRW
GHILQHGIRUWKDWDUJXPHQW)RUH[DPSOHLQ)2575$1WKHIROORZLQJVWDWHPHQWJHQHUDWHVWKLV
HUURU
result = LOG10(0.0)

0DWK(UURU0

IXQFWLRQ
B29(5)/2:HUURU
7KHJLYHQIXQFWLRQUHVXOWZDVWRRODUJHWREHUHSUHVHQWHG

0DWK(UURU0

IXQFWLRQ
B7/266HUURU
$WRWDOORVVRIVLJQLILFDQFH SUHFLVLRQ RFFXUUHG7KLVHUURUPD\EHFDXVHGE\JLYLQJDYHU\ODUJH
QXPEHUDVWKHRSHUDQGRIVLQFRVRUWDQEHFDXVHWKHRSHUDQGPXVWEHUHGXFHGWRDQXPEHU
EHWZHHQDQG SL
NMAKE Messages Page 1 of 12

NMAKE Messages
The following topics cover NMAKE Error U1000 through Warning U4011:

l NMAKE Errors U1000 to U1049


l NMAKE Errors U1050 to U1100
l NMAKE Error U2001 to Warning U4011

NMAKE Error U1000 through U1050

The following topics cover NMAKE Error U1000 through U1049:

NMAKE Fatal Error U1000


syntax error : ’)’ missing in macro invocation
A left parenthesis, (, appeared without a matching right parenthesis, ), in a macro invocation. The
correct form is $(name); $n is allowed for one-character names.

NMAKE Fatal Error U1001


syntax 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

NMAKE Fatal Error U1002


syntax 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 the dollar sign with a caret
(^).

NMAKE Fatal Error U1003


syntax error : ’=’ missing in macro
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)

NMAKE Fatal Error U1004


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

l 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)=TWO
l A macro invocation did not specify a name in the parentheses. The following specification
causes this error:
$()
The syntax for using a macro is:
$(name)
NMAKE Messages Page 2 of 12

NMAKE Fatal Error U1005


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

NMAKE Fatal Error U1006


syntax error : missing closing double quotation mark
An opening double quotation mark (") appeared without a closing double quotation mark.

NMAKE Fatal Error U1007


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

NMAKE Fatal Error U1017


unknown directive ’!directive’
The specified directive is not one of the recognized directives.

NMAKE Fatal Error U1018


directive and/or expression part missing
The directive was incompletely specified. The expression part of the directive is required.

NMAKE Fatal Error U1019


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

NMAKE Fatal Error U1020


end-of-file found before next directive
An expected directive was missing. For example, an !IF was not followed by an !ENDIF.

NMAKE Fatal Error U1021


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

NMAKE Fatal Error U1022


missing terminating character for string/program invocation : char’

One of the following occurred:

l The closing double quotation mark (") in a string comparison in a directive was missing.
l The closing bracket (]) in a program invocation in a directive was missing.

NMAKE Fatal Error U1023


syntax error in expression
An expression was invalid. Check the allowed operators and operator precedence.
NMAKE Messages Page 3 of 12

NMAKE Fatal Error U1024


illegal argument to !CMDSWITCHES
An unrecognized command switch was specified.

NMAKE Fatal Error U1025


syntax error : !ENDIF unexpected
An !ENDIF 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.

NMAKE Fatal Error U1031


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

NMAKE Fatal Error U1033


syntax 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:

l 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’ unexpected
l If 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 : ’=’ unexpected
l If the semicolon (;) in a comment line in TOOLS.INI is not at the beginning of the line, the
following error occurs: syntax error : ’;’ unexpected
l If the makefile has been formatted by a word processor, the following error can occur:syntax
error : ’:’ unexpected

NMAKE Fatal Error U1034


syntax error : separator missing
The colon (:) that separates targets and dependents is missing.

NMAKE Fatal Error U1035


syntax error : expected ’:’ or ’=’ separator
Either a colon (:) or an equal sign (=) was expected. Possible causes include the following:

l A target was not followed by a colon.


l A single-letter target was followed by a colon and no space (such as a:). NMAKE interpreted it
as a drive specification.
l An inference rule was not followed by a colon.
l A macro definition was not followed by an equal sign.
l A character followed a backslash (\) that was used to continue a command to a new line.
l A string appeared that did not follow any NMAKE syntax rule.
l The makefile was formatted by a word processor.

NMAKE Fatal Error U1036


NMAKE Messages Page 4 of 12

syntax error : too many names to left of ’=’


Only one string is allowed to the left of a macro definition.

NMAKE Fatal Error U1037


syntax error : target name missing
A colon (:) was found before a target name was found. At least one target is required.

NMAKE Fatal Error U1038


internal error : lexer
Note the circumstances of the error, try to isolate the problem, create a reproducible test case, and
report to technical support.

NMAKE Fatal Error U1039


internal error : parser
Note the circumstances of the error, try to isolate the problem, create a reproducible test case, and
report to technical support.

NMAKE Fatal Error U1040


internal error : macro expansion
Note the circumstances of the error, try to isolate the problem, create a reproducible test case, and
report to technical support.

NMAKE Fatal Error U1041


internal error : target building
Note the circumstances of the error, try to isolate the problem, create a reproducible test case, and
report to technical support.

NMAKE Fatal Error U1042


internal error : expression stack overflow
Note the circumstances of the error, try to isolate the problem, create a reproducible test case, and
report to technical support.

NMAKE Fatal Error U1043


internal error : temp file limit exceeded
Note the circumstances of the error, try to isolate the problem, create a reproducible test case, and
report to technical support.

NMAKE Fatal Error U1045


spawn failed : message
A program or command called by NMAKE failed for the given reason.

NMAKE Fatal Error U1047


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

NMAKE Fatal Error U1048


cannot 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.
NMAKE Messages Page 5 of 12

NMAKE Fatal Error U1049


macro or inline file too long (maximum : 64K)
An inline file or a macro exceeded the limit of 64K.

Return to Main NMAKE Messages Page

NMAKE Error U1050 through U1100

The following topics cover NMAKE Error U1050 through U1100:

NMAKE Fatal Error U1050


message
The message specified with the !ERROR directive was displayed.

NMAKE Fatal Error U1051


out of memory
NMAKE ran out of memory, including virtual memory, because the makefile was too large or
complex. One of the following may be a solution:

l Free some space on disk.


l Increase the size of the Windows NT paging file or the Windows swap file.
l If only part of the makefile is being used, either divide the makefile into separate files or use !IF
preprocessing directives to limit the amount that NMAKE must process. The !IF directives
include !IF, !IFDEF, !IFNDEF, !ELSE IF, !ELSE IFDEF, and !ELSE IFNDEF.

NMAKE Fatal Error U1052


file ’filename’ not found
NMAKE could not find the given file, which was specified with one of the following:

l /F option
l !INCLUDE preprocessing directive
l At sign (@) specifier for a response file

Check that the file exists and the filename is spelled correctly.

NMAKE Fatal Error U1053


file ’filename’ unreadable
The file cannot be read. One of the following may be a cause:

l The file is in use by another process.


l A bad area exists on disk.
l A bad file-allocation table exists.

NMAKE Fatal Error U1054


cannot create inline file f’ilename’
NMAKE failed to create the given inline file. One of the following may be a cause:
NMAKE Messages Page 6 of 12

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


l The disk is full.

NMAKE Fatal Error U1055


out of environment space
The operating system ran out of room for environment variables. Either increase the environment
space or set fewer environment variables.

NMAKE Fatal Error U1056


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

NMAKE Fatal Error U1057


cannot delete temporary file ’filename’
NMAKE failed to delete the temporary inline file.

NMAKE Fatal Error U1058


terminated by user
NMAKE was halted by Ctrl+C or Ctrl+BREAK.

NMAKE Fatal Error U1059


syntax error : ’}’ missing in dependent
A search path for a dependent was incorrectly specified. Either a space existed in the path or the
closing brace (}) was omitted. The syntax for a directory specification for a dependent is {directories}
dependent where directories specifies one or more paths, each separated by a semicolon (;). No spaces
are allowed. If part or all of a search path is replaced by a macro, make sure no spaces exist in the
macro expansion.

NMAKE Fatal Error U1060


unable to close file : ’filename’
NMAKE encountered an error while closing a file. One of the following may be a cause:

l The file is a read-only file.


l There is a locking or sharing violation.
l The disk is full.

NMAKE Fatal Error 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.

NMAKE Fatal Error U1062


missing 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 a dash (-) as the output filename.
NMAKE Messages Page 7 of 12

NMAKE Fatal Error U1063


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

NMAKE Fatal Error U1064


MAKEFILE 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 (or
both). 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.

NMAKE Fatal Error U1065


invalid option ’option’
The specified option is not a valid option for NMAKE.

NMAKE Fatal Error U1069


no 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 that is specified using a wildcard must exist on disk.

NMAKE Fatal Error U1070


cycle 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)

causes the following error:


cycle in macro definition ’TWO’

NMAKE Fatal Error U1071


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

NMAKE Fatal Error U1072


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

NMAKE Fatal Error U1073


don’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:
NMAKE Messages Page 8 of 12

l Check the spelling of the target name.


l If targetname is a pseudotarget, specify it as a target in another description block.
l If targetname is a macro invocation, be sure it does not expand to a null string.

NMAKE Fatal Error U1076


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

l A macro name cannot exceed 1024 characters.


l A target name (including its path) cannot exceed 256 characters.
l A command cannot exceed 2048 characters.

NMAKE Fatal Error U1077


’program’ : 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.

NMAKE Fatal Error U1078


constant 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:

l An expression specified with a preprocessing directive


l An error level specified with the dash (-) command modifier

NMAKE Fatal Error U1079


illegal expression : divide by zero
An expression tried to divide by zero.

NMAKE Fatal Error U1080


operator and/or operand usage illegal
The expression incorrectly used an operator or operand. Check the allowed set of operators and their
order of precedence.

NMAKE Fatal Error U1081


’filename’ : 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.

NMAKE Fatal Error U1082


’command’ : cannot execute command; out of memory
There is not enough memory to execute the given command. One solution is to use the /N option to
generate a batch file, then run the batch file instead of using NMAKE. In most cases the results will be
the same.

NMAKE Fatal Error U1083


NMAKE Messages Page 9 of 12

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

NMAKE Fatal Error U1084


cannot 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:

l The file already exists with a read-only attribute.


l There is insufficient disk space to create the file.
l The directory specified in the TMP environment variable does not exist.

NMAKE Fatal Error U1085


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

NMAKE Fatal Error U1086


inference rule cannot have dependents
The colon (:) in an inference rule must be followed by one of the following:

l Newline character
l Semicolon (;), which can be followed by a command
l Number sign (#), which can be followed by a comment

NMAKE Fatal Error U1087


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

NMAKE Fatal Error U1088


invalid separator ’::’ on inference rule
An inference rule must be followed by a single colon (:).

NMAKE Fatal Error U1089


cannot have build commands for directive targetname’

Dot directives cannot be followed by commands. The dot directives are .IGNORE, .PRECIOUS,
.SILENT, and .SUFFIXES.

NMAKE Fatal Error U1090


cannot have dependents for directive ’targetname’
Dot directives cannot be followed by dependents. The dot directives are .IGNORE, .PRECIOUS,
.SILENT, and .SUFFIXES.

NMAKE Fatal Error U1092


too many names in rule
An inference rule cannot specify more than two extensions.
NMAKE Messages Page 10 of 12

NMAKE Fatal Error U1093


cannot mix dot directives
Multiple dot directives cannot be specified on one line. The dot directives are .IGNORE,
.PRECIOUS, .SILENT, and .SUFFIXES.

NMAKE Fatal Error U1094


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

NMAKE Fatal Error U1095


expanded command line c’ ommandline’ too long
After macro expansion, the given command line exceeded the limit on length of command lines for the
operating system. 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.

NMAKE Fatal Error U1096


cannot open inline file f’ilename’
NMAKE could not create the given inline file. One of the following occurred:

l The disk was full.


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

NMAKE Fatal Error U1097


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

NMAKE Fatal Error U1098


illegal filename-parts syntax instring’

The given string does not contain valid filename-parts syntax.

NMAKE Fatal Error U1099


stack 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 EDITBIN utility
with a larger stack option: EDITBIN /STACK:stacksize NMAKE.EXE where stacksize is a number
greater than the current stack allocation in NMAKE.

NMAKE Fatal Error U1100


macro 'macroname' is illegal in the context of batch rule r' ule'
NMAKE generates this error when the command block of a batch-mode rule directly or indirectly
references a special file macro that is not $<. $< is the only allowed macro for batch-mode rules.
NMAKE Messages Page 11 of 12

Return to Main NMAKE Messages Page

NMAKE Error U2001 through Warning U4011

The following topics cover NMAKE Error U2001 through Warning U4011:

NMAKE Error U2001


no more file handles (too many files open)
NMAKE could not find a free file handle. One of the following may be a solution:

l Reduce recursion in the build procedures.


l In Windows 95 or Windows 98, increase the number of file handles by changing the FILES
setting in CONFIG.SYS to allow a larger number of open files. FILES=50 is the recommended
setting.

NMAKE Warning U4001


command file can be invoked only from command line
A command file, which is invoked by the at-sign (@) specifier, cannot contain a specification for
another command file. Such nesting is not allowed. The specification was ignored.

NMAKE Warning U4002


resetting value of special macro m
’ acroname’
The given predefined macro was redefined.

NMAKE Warning U4004


too many rules for target ’targetname’
More than one description block was specified for the given target using single colons (:) as
separators. NMAKE executed the commands in the first description block and ignored later blocks.
To specify the same target in multiple dependencies, use double colons (::) as the separator in each
dependency line.

NMAKE Warning U4005


ignoring rule ’rule’ (extension not in .SUFFIXES)
The given rule contained a suffix that is not specified in the .SUFFIXES list. NMAKE ignored the
rule. This warning appears only when the /P option is used.

NMAKE Warning U4006


special macro undefined : m
’ acroname’
The given special macro name is undefined and expands to nothing.

NMAKE Warning U4007


filename ’filename’ too long; truncating to 8.3
The base name of the given file has more than eight characters, or the extension has more than three
characters. NMAKE truncated the name to an eight-character base and a three-character extension. If
long filenames are supported by your file system, enclose the name in double quotation marks (").

NMAKE Warning U4008


removed target ’target’
NMAKE was interrupted while trying to build the given target, and the target file was incomplete.
NMAKE Messages Page 12 of 12

Because the target was not specified in the .PRECIOUS list, NMAKE deleted the file.

NMAKE Warning U4010


’target’ : build failed; /K specified, continuing ...
A command in the commands block for the giventarget returned a nonzero exit code. The /K option
told NMAKE to continue processing unrelated parts of the build and to issue an exit code 1 when the
NMAKE session is finished. If the given target is itself a dependent for another target, NMAKE issues
warning U4011 after this warning.

NMAKE Warning U4011


’target’ : not all dependents available; target not built
A dependent of the given target either did not exist or was out-of-date, and a command for updating
the dependent returned a nonzero exit code. The /K option told NMAKE to continue processing
unrelated parts of the build and to issue an exit code 1 when the NMAKE session is finished. This
warning is preceded by warning U4010 for each dependent that failed to be created or updated.

Return to Main NMAKE Messages Page


Profiler Errors PRF1005 through PRF4642 Page 1 of 7

Profiler Errors PRF1005 through PRF4642


7KHIROORZLQJGHVFULSWLRQVFRYHU3URILOHU(UURUV35)WKURXJK35)

3URILOHU(UURU35)
IDWDOHUURUFRPPRQRSHUDWLQJV\VWHPUDQRXWRIPHPRU\
7KHUHLVQRWHQRXJKPHPRU\WRUXQWKLVSURILOHUPRGXOH

3URILOHU(UURU35)
IDWDOHUURUFRPPRQFDQQRWRSHQILOHILOHQDPH
7KHSURILOHUPRGXOHFRXOGQRWILQGWKHVSHFLILHGILOH

3URILOHU(UURU35)
IDWDOHUURUFRPPRQFDQQRWUHDGH[SHFWHGQXPEHURIE\WHVIURPILOHILOHQDPH
7KHSURILOHUPRGXOHFRXOGQRWUHDGWKHH[SHFWHGQXPEHURIE\WHV7KLVHUURULVRIWHQFDXVHGE\
WU\LQJWRSURILOHDQ(;(RU'//ILOHWKDWZDVQRWOLQNHGZLWKSURILOLQJHQDEOHG 352),/(OLQNHU
FRPPDQGOLQHRSWLRQ 

3URILOHU(UURU35)
IDWDOHUURUFRPPRQFDQQRWZULWHH[SHFWHGQXPEHURIE\WHVWRILOHILOHQDPH
7KHSURILOHUPRGXOHFRXOGQRWZULWHWKHH[SHFWHGQXPEHURIE\WHV3HUKDSVWKHGLVNLVIXOORUWKH
ILOHLVUHDGRQO\

3URILOHU(UURU35)
IDWDOHUURUFRPPRQPLVVLQJRSWLRQVSHFLILHU
$RUFKDUDFWHUZDVQRWIROORZHGE\DFRPPDQGOLQHRSWLRQVSHFLILHUVHTXHQFH&KHFNWKH
FRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURUFRPPRQRSWLRQLQYDOLGRSWLRQ
$QLQYDOLGRSWLRQZDVIRXQGRQWKHFRPPDQGOLQH&KHFNWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURUFRPPRQRSWLRQRSWLRQUHTXLUHVDQDGGLWLRQDOSDUDPHWHU
7KLVRSWLRQZDVQRWIROORZHGE\WKHFRUUHFWQXPEHURISDUDPHWHUV&KHFNWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURUFRPPRQRSWLRQRSWLRQUHTXLUHVDQXPHULFSDUDPHWHU
$QXPHULFSDUDPHWHUZDVH[SHFWHGIRUWKLVRSWLRQEXWZDVQRWIRXQG&KHFNWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURUFRPPRQRSWLRQRSWLRQVSHFLILHGPRUHWKDQQXPEHUWLPHV
$QRSWLRQZDVVSHFLILHGWRRPDQ\WLPHV&KHFNWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURUFRPPRQPLVVLQJILOHQDPHDIWHU#
7KH#FKDUDFWHULVVXSSRVHGWREHIROORZHGE\DUHVSRQVHILOHQDPH&KHFNWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURUFRPPRQUHVSRQVHILOHVQHVWHGWRRGHHSO\
5HVSRQVHILOHVFDQEHQHVWHGHLJKWGHHS3HUKDSVDUHVSRQVHILOHFDOOVLWVHOIUHFXUVLYHO\

3URILOHU(UURU35)
Profiler Errors PRF1005 through PRF4642 Page 2 of 7

IDWDOHUURUFRPPRQILOHILOHQDPHKDVDQLQFRUUHFW ROG VLJQDWXUH


$3%,3%23%7B;(RUB//ILOHGRHVQRWFRQWDLQWKHFRUUHFWKHDGHUE\WHV3HUKDSVWKHILOHLV
FRUUXSWHGRUZDVFUHDWHGE\DQROGYHUVLRQRIWKHSURILOHU

3URILOHU(UURU35)
IDWDOHUURUFRPPRQ3%,ILOHILOHQDPHKDVDQLQFRUUHFW ROG YHUVLRQQXPEHU
$3%,ILOHGRHVQRWFRQWDLQWKHFRUUHFWYHUVLRQQXPEHU3HUKDSVWKHILOHLVFRUUXSWHGRUZDV
FUHDWHGE\DQROGYHUVLRQRIWKHSURILOHU

3URILOHU(UURU35)
IDWDOHUURUFRPPRQ3%7ILOHILOHQDPHKDVDQLQFRUUHFW ROG YHUVLRQQXPEHU
$3%7ILOHGRHVQRWFRQWDLQWKHFRUUHFWYHUVLRQQXPEHU3HUKDSVWKHILOHLVFRUUXSWHGRUZDV
FUHDWHGE\DQROGYHUVLRQRIWKHSURILOHU

3URILOHU(UURU35)
IDWDOHUURUFRPPRQ3%7RU3%2ILOHILOHQDPHFRQIOLFWVZLWKFXUUHQWSURILOLQJVWDWH
7KHUHZDVDQDWWHPSWWRPHUJHD3%7RUD3%2ILOHLQWRDQRWKHU3%7ILOHZLWKDGLIIHUHQWSURILOLQJ
PRGHVHOHFWHG

3URILOHU(UURU35)
IDWDOHUURUFRPPRQ3%7RU3%2ILOHILOHQDPHLVQRWGHULYHGIURPVDPH3%,ILOH
7KH3%73%2DQG3%,ILOHVDUHQRWSURSHUO\V\QFKURQL]HG5XQ35(33KDVH,DJDLQ

3URILOHU(UURU35)
IDWDOHUURUFRPPRQ&38W\SHRIPRGXOHPRGXOHLVGLIIHUHQWIURPLQLWLDORQH
&38W\SHVIRUGLIIHUHQWPRGXOHVGRQ
WPDWFK$OOPRGXOHVPXVWEHFRPSLOHGIRUWKHVDPH&38
W\SH

3URILOHU(UURU35)
IDWDOHUURUFRPPRQILOHQDPHQRWDSRUWDEOHH[HFXWDEOHILOH
)XQFWLRQSURILOLQJRQO\7KHVSHFLILHGH[HFXWDEOHILOHLVQRWDVWDQGDUGH[HFXWDEOHILOHIRU
:LQGRZV173HUKDSVLWLVDELWH[HFXWDEOHIRU:LQGRZV[

3URILOHU(UURU35)
IDWDOHUURU35(3,QRLQSXWVSHFLILHG
7KHUHZHUHQRLQSXWPRGXOHVVSHFLILHGIRU35(33KDVH,&KHFNWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURU35(3,V\QWD[HUURULQ(;&RU,1&VSHFLILFDWLRQVSHFLILFDWLRQ
7KH(;&DQG,1&RSWLRQVUHTXLUHIXQFWLRQQDPHVRUILOHQDPHV7KLVVSHFLILFDWLRQFRXOGQRWEH
GHFRGHG&KHFNWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURU35(3,QXPEHURIPRGXOHVH[FHHGVQXPEHU
7KHPD[LPXPQXPEHURIPRGXOHVKDVEHHQH[FHHGHG5HVWUXFWXUHWKHPHUJHSURFHGXUHWR
LQFOXGHPRUHVWDJHV

3URILOHU(UURU35)
IDWDOHUURU35(3,'HEXJJLQJLQIRUPDWLRQLQILOHQDPHLVQRWWKHULJKWIRUPDWIRUSURILOLQJ
UHOLQNZLWK352),/(
&RXOGQRWXVHGHEXJJLQHLQIRUPDWLRQVWRUHGLQWKH3URJUDP'DWDEDVH'HEXJLQIRUPDWLRQWREH
XVHGPXVWEHVWRUHGLQWKHH[HFXWDEOHLQROGVW\OHIRUPDW5HOLQNZLWKWKH352),/(RSWLRQWR
GRWKLV
Profiler Errors PRF1005 through PRF4642 Page 3 of 7

3URILOHU(UURU35)
IDWDOHUURU35(3,ILOHQDPHLQYDOLGUXQWLPHUHORFDWLRQWU\UHOLQN
7KHSURILOHUIRXQGEDGUHORFDWLRQLQIRUPDWLRQLQWKHSURJUDPWREHSURILOHG7KLVLVXVXDOO\
FDXVHGE\XVLQJDQREVROHWHYHUVLRQRIWKHOLQNHU5HOLQN\RXUFRGHZLWKWKHQHZSURILOHUDQGUXQ
35(3DJDLQ

3URILOHU(UURU35)
$IL[HGLPDJHH[HFXWDEOHFDQQRWEHSURILOHGUHOLQNILOHZLWKRXWWKHIL[HGVZLWFK

3URILOHU(UURU35)
([HFXWDEOHLPDJHWRRODUJHWRSURILOHWU\EUHDNLQJLWGRZQLQWRVPDOOHU'//V
7KHH[HFXWDEOHFDQQRWEHSURILOHDWLWVSUHVHQWVL]H

3URILOHU(UURU35)
IDWDOHUURU352),/(ILOHQDPHQRWDYDOLG:LQVH[HFXWDEOHILOH
:LQVRQO\7KH:LQVH[WHQVLRQFRXOGQRWORDGWKLVILOH3HUKDSVWKHILOHLVFRUUXSWHGKDVQRW
EHHQSUHSDUHGIRUSURILOLQJRULVQRWDJUDSKLFDOXVHULQWHUIDFHDSSOLFDWLRQ,IWKHILOHZHUHD
ELWH[HFXWDEOHHUURUPHVVDJHZRXOGEHLVVXHG

3URILOHU(UURU35)
IDWDOHUURU352),/(WLPHVWDPSRIH[HFXWDEOHKDVFKDQJHGVLQFH35(3ZDVUXQ
7KH3%,ILOHZDVFUHDWHGIURPDQROGHU(;(ILOH7KLVPHDQVWKDWWKHSURFHVVHGH[HFXWDEOHILOH
KDVFKDQJHGVLQFHLWZDVRULJLQDOO\FUHDWHGE\35(33KDVH,5XQ35(33KDVH,DJDLQ

3URILOHU(UURU35)
IDWDOHUURU352),/(FDQQRWUXQSURJUDPILOHQDPH
7KHSURILOHUFRXOGQRWORDGWKH(;(ILOH&KHFNWKDWWKHRULJLQDO(;(ILOHGRHVUXQXQGHU:LQGRZV
17

3URILOHU(UURU35)
WKLVYHUVLRQRI:LQGRZVGRHVQRWVXSSRUWWKLVPDQQHURISURILOLQJ
7KHIXQFWLRQWLPLQJ IW RSWLRQLVQRWVXSSRUWHGIRUWKLVYHUVLRQRI:LQGRZV

3URILOHU(UURU35)
/LQHFRXQWDQGOLQHFRYHUDJHDUHQRWVXSSRUWHGRQ:LQ6
7KH:LQ6YHUVLRQRIWKHSURILOHUGRHVQRWVXSSRUWOLQHFRXQWRUOLQHFRYHUDJHSURILOLQJ

3URILOHU(UURU35)
IDWDOHUURU35(3,,QR3%7RXWSXWILOHVSHFLILHG
1HLWKHUWKH27QRU0RSWLRQZDVVSHFLILHG&KHFNWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURU35(3,,QR3%7LQSXWILOHVSHFLILHG
1HLWKHUWKH,7QRU0RSWLRQZDVVSHFLILHG&KHFNWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURU35(3,,PRGXOHGLIIHUHQWFORFNVDPSOLQJIUHTXHQF\
7KHVDPSOLQJIUHTXHQF\IRUWKLVPRGXOHLVGLIIHUHQWIURPWKDWRIRWKHUPRGXOHVWKDWZHUH
SURILOHG5HUXQ352),/(DJDLQIRUDOOPRGXOHVXVLQJWKHVDPHVDPSOLQJIUHTXHQF\

3URILOHU(UURU35)
IDWDOHUURU35(3,,&38W\SHLQ3%7RU3%2ILOHILOHQDPHFRQIOLFWVZLWKFXUUHQWRQH
2FFXUVRQO\GXULQJ35(3PHUJLQJ7KH&38W\SHGRHVQRWPDWFKWKH&38W\SHXVHGWRJHQHUDWH
Profiler Errors PRF1005 through PRF4642 Page 4 of 7

WKHLQFRPLQJ3%7RU3%2ILOHV$OOSURILOHUVWHSVPXVWEHUXQRQWKHVDPHW\SHRIFRPSXWHU

3URILOHU(UURU35)
IDWDOHUURU3/,67RSWLRQLQFRQVLVWHQWZLWKVRUWLQJW\SH
7KHRSWLRQVIRU3/,67GHSHQGRQWKHNLQGRISURILOLQJEHLQJGRQH7KLVHUURURFFXUVIRUH[DPSOH
ZKHQWKH6RUW%\1DPHRSWLRQLVVSHFLILHGIRUDOLQHSURILOLQJUXQ

3URILOHU(UURU35)
IDWDOHUURU35(3RU352),/(DEQRUPDOWHUPLQDWLRQLQ35(3RU352),/(GHWHFWHG3/,67
FDQQRWFRQWLQXH
7KHILOHVRXWSXWE\35(3RU352),/(ZHUHQRWYDOLGEHFDXVHRQHRIWKHVHXWLOLWLHVGLGQRW
FRPSOHWHLWVWDVN7KLVHUURULVXVXDOO\FDXVHGE\DQHUURUGXULQJWKHH[HFXWLRQRI35(3RU
352),/(VXFKDVDPLVVLQJ0$3ILOH

3URILOHU(UURU35)
IDWDOHUURUFRPPRQLOOHJDOIL[XSDGGUHVVLQPDSILOHILOHQDPH
7KHPDSILOHOLVWVDOOOLQNWLPHIL[XSV LQFOXGLQJDOOWKHIXQFWLRQFDOOVLWHV 7KLVHUURULQGLFDWHV
WKDWRQHRIWKHIL[XSVZDVLOOHJDOSHUKDSVEHFDXVHWKHPDSILOHZDVQRWJHQHUDWHGE\WKHVDPH
OLQNDVWKHFRUUHVSRQGLQJ(;( RU'// 7KLVHUURULVRIWHQSUHFHGHGE\WKHZDUQLQJ 35) 
DERXWWKH(;(DQGPDSILOHWLPHVWDPSVEHLQJRXWRIV\QF

3URILOHU(UURU35)
IDWDOHUURU35(3,QRIXQFWLRQVZHUHPDUNHGIRUSURILOLQJLQPRGXOHPRGXOH
)XQFWLRQSURILOLQJRQO\DWOHDVWRQHIXQFWLRQPXVWEHLQFOXGHGIRUSURILOLQJLQHDFKPRGXOH
&KHFNWKH,1&(;&DQG(;&$//RSWLRQVRQWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURU35(3,PRUHWKDQRQHIXQFWLRQPDWFKHGHQWU\VSHFLILFDWLRQIXQFQDPHDQG
IXQFQDPH
)XQFWLRQSURILOLQJRQO\WKHUHZHUHWZRRUPRUHIXQFWLRQVZLWKPDWFKLQJQDPHV3HUKDSVWKHVH
DUH&RYHUORDGHGIXQFWLRQV8VHGHFRUDWHGQDPHVWRVSHFLI\WKHIXQFWLRQV

3URILOHU(UURU35)
IDWDOHUURU35(3,ILOHQDPHLVQRWSURILOHGDQGFDQQRWLPSRUWPRGLILHGYHUVLRQYHUVLRQ
)RUIXQFWLRQOHYHOSURILOHV35(3XVHVPRGLILHG(;(VDQG'//VZLWKPRGLILHGQDPHVZLWK
H[WHQVLRQVB;(DQGB//,IDQ\PRGXOHVOLVWHGLQWKHLPSRUWWDEOHRIDSURILOHGPRGXOHUHIHUWR
DQRWKHUSURILOHGPRGXOHEXWWKHLPSRUWHGPRGXOHLVLWVHOIQRWEHLQJSURILOHGWKHQWKHLPSRUW
WDEOHRIWKDWLPSRUWHGPRGXOHFDQQRWEHFKDQJHGDQGWKLVHUURURFFXUV7KHVROXWLRQLVWR
LQFOXGHWKHRIIHQGLQJPRGXOHLQWKHSURILOH

3URILOHU(UURU35)
IDWDOHUURU35(3,'HEXJJLQJLQIRLQILOHQDPHLVQRWWKHULJKWIRUPDWIRUSURILOLQJUHOLQNZLWK
352),/(
<RXPXVWOLQNH[HFXWDEOHILOHVZLWKSURILOLQJHQDEOHG WKH352),/(OLQNHURSWLRQ WRSURILOH
WKHP&KDQJH\RXUOLQNHURSWLRQVUHEXLOGDQGUHUXQ35(3

3URILOHU(UURU35)
IDWDOHUURU352),/(FDQQRWVHWRUGHOHWHHQYLURQPHQWYDULDEOHYDU
)XQFWLRQSURILOLQJRQO\7KHVSHFLILHGHQYLURQPHQWYDULDEOHZDVXQDYDLODEOH

3URILOHU(UURU35)
IDWDOHUURU352),/(1W4XHU\,QWHUYDO3URILOH17LQWHUQDOHUURUQXPEHURFFXUUHG
$:LQGRZV17HUURUZDVGHWHFWHG

3URILOHU(UURU35)
Profiler Errors PRF1005 through PRF4642 Page 5 of 7

IDWDOHUURU352),/(1W6HW,QWHUYDO3URILOH17LQWHUQDOHUURUQXPEHURFFXUUHG
$:LQGRZV17HUURUZDVGHWHFWHG

3URILOHU(UURU35)
IDWDOHUURU352),/(IXQFWLRQVDPSOLQJLVQRORQJHUVXSSRUWHG
)XQFWLRQVDPSOLQJLVQRWVXSSRUWHGLQWKLVYHUVLRQ8VHIXQFWLRQWLPLQJWRJHWPRUHDFFXUDWH
UHVXOWV

3URILOHU(UURU35)
IDWDOHUURU35(3,QRGHEXJJLQJLQIRUPDWLRQLQILOHILOHQDPH
/LQHSURILOLQJRQO\GHEXJJLQJLQIRUPDWLRQPXVWEHLQFOXGHGLQWKHH[HFXWDEOHILOH5XQWKH
FRPSLOHUDQGOLQNHUDJDLQZLWKWKHGHEXJJLQJRSWLRQVVHW

3URILOHU(UURU35)
IDWDOHUURU35(3,QRVRXUFHOLQHVPDUNHGIRUSURILOLQJLQPRGXOHPRGXOH
/LQHSURILOLQJRQO\DWOHDVWRQHOLQHPXVWEHLQFOXGHGIRUSURILOLQJLQHDFKPRGXOH&KHFNWKH
,1&(;&DQG(;&$//RSWLRQVRQWKHFRPPDQGOLQH

3URILOHU(UURU35)
IDWDOHUURU352),/(XVHUGHILQHGEUHDNSRLQWIRXQGDWDGGUHVV
/LQHSURILOLQJRQO\1REUHDNSRLQWVPD\EHVHWLQWKHH[HFXWDEOHPRGXOHVEHLQJSURILOHG7KHVH
DUHQRWEUHDNSRLQWVVHWE\WKHGHEXJJHUEXWUDWKHUHPEHGGHG,17LQVWUXFWLRQV7KLVHUURULV
RQO\IDWDOLIWKH,17LQVWUXFWLRQLVHQFRXQWHUHGGXULQJWKHH[HFXWLRQRI\RXUSURJUDP

3URILOHU(UURU35)
IDWDOHUURU352),/(XQH[SHFWHGVLQJOHVWHSH[FHSWLRQRFFXUUHGDWDGGUHVV
/LQHSURILOLQJRQO\7KHUHZDVDSUREOHPZLWKWKHH[HFXWDEOHILOH7U\UHOLQNLQJDQGUHUXQQLQJ
35(33KDVH,

3URILOHU(UURU35)
IDWDOHUURU352),/(DQDFFHVVYLRODWLRQRFFXUUHGDWDGGUHVV
/LQHSURILOLQJRQO\7KHUHZDVDSUREOHPZLWKWKHH[HFXWDEOHILOH7U\UHOLQNLQJDQGUHUXQQLQJ
35(33KDVH,&KHFNWKH(;(ILOHZLWKWKHGHEXJJHU

3URILOHU(UURU35)
HUURU352),/(FDQQRWVWDUWVDPSOHU
3HUKDSVWKHH[HFXWDEOHSURJUDPLVWRRODUJH

3URILOHU(UURU35)
HUURU352),/(FDQQRWVWRSVDPSOHU
3HUKDSVWKHH[HFXWDEOHSURJUDPLVWRRODUJH

3URILOHU(UURU35)
ZDUQLQJFRPPRQRSWLRQRSWLRQRYHUULGHVDQHDUOLHURSWLRQ
7ZRRUPRUHPXWXDOO\H[FOXVLYHVZLWFKHVZHUHVSHFLILHGRUWKHVDPHVZLWFKZDVVSHFLILHGPRUH
WKDQRQFH7KHODVWVZLWFKWDNHVSUHFHGHQFH

3URILOHU(UURU35)
ZDUQLQJFRPPRQIXQFWLRQVRXUFHREMHFWOLEQDPHZDVQHYHUPDWFKHG
7KHSURJUDPHOHPHQWZDVQRWIRXQG0DNHVXUHWKHQDPHZDVVSHOOHGRUGHFRUDWHGFRUUHFWO\

3URILOHU(UURU35)
ZDUQLQJFRPPRQ6)RSWLRQQRWYDOLGIRUOLQHOHYHORUVDPSOHSURILOHV
7KHVWDUWIXQFWLRQRSWLRQVKRXOGEHXVHGRQO\ZLWKIXQFWLRQWLPLQJIXQFWLRQFRXQWLQJRUIXQFWLRQ
Profiler Errors PRF1005 through PRF4642 Page 6 of 7

FRYHUDJHSURILOLQJ

3URILOHU(UURU35)
ZDUQLQJFRPPRQQRHUURUILOH ( VSHFLILHGIRU$RSWLRQ
7KH$RSWLRQFDQQRWEHXVHGZLWKRXWWKH(RSWLRQ7KH$RSWLRQLVLJQRUHGDQGWKHHUURU
RXWSXWVHQWWRVWGRXW

3URILOHU(UURU35)
ZDUQLQJ35(3,DQRIIVHWGXSOLFDWLRQZDVGHWHFWHG
7KHUHDSSHDUVWREHDSUREOHPZLWKWKH FRGHYLHZ OLQHQXPEHUGHEXJLQIRUPDWLRQ3HUKDSV
WKHUHLVDQDOLDVLQJSUREOHP

3URILOHU(UURU35)
ZDUQLQJ35(3,ILOHQDPHLPSRUWVXQNQRZQPRGXOHPRGXOH
35(3VHDUFKHVIRULPSRUWHGPRGXOHV PRVWO\'//V LQWKHIROORZLQJVHTXHQFH

l 'LUHFWRU\35(3LWVHOIOLYHVLQ
l &XUUHQWGLUHFWRU\
l :LQGRZVGLUHFWRULHV
l 'LUHFWRULHVRQWKHSDWK

%HFDXVHWKHFXUUHQWGLUHFWRU\GHSHQGVRQWKHSURILOHUUDWKHUWKDQRQWKHSURILOHGSURJUDPDOO
PRGXOHVPLJKWQRWEHIRXQG,QPRVWFDVHVWKLVZDUQLQJLVQRWVHULRXV+RZHYHULISURILOLQJ
OHDGVWRD*3IDXOW RUWRLQFRUUHFWEHKDYLRU LWPLJKWEHQHFHVVDU\WRLQFOXGHWKHXQNQRZQ
PRGXOHLQWKHSURILOH

3URILOHU(UURU35)
ZDUQLQJ35(3,ILOHQDPHLJQRULQJXQNQRZQUXQWLPHUHORFDWLRQW\SHYHULI\OLQNHUYHUVLRQ
0,366SHFLILF 7KHSURILOHUIRXQGEDGUHORFDWLRQLQIRUPDWLRQLQWKHSURJUDPWREHSURILOHG7KLV
LVXVXDOO\FDXVHGE\XVLQJDQREVROHWHYHUVLRQRIWKHOLQNHU5HOLQN\RXUFRGHZLWKWKHQHZ
SURILOHUDQGUXQ35(3DJDLQ

3URILOHU(UURU35)
ZDUQLQJ3/,67FORFNIUHTXHQF\LV]HUR
7KHFORFNIUHTXHQF\ILHOGLQWKH3%7ILOHKDVQRWEHHQILOOHGLQ\HWSHUKDSVEHFDXVHWKHXVHUKDV
QRWGRQHDSURILOH\HWRUKDVQRWPHUJHGKLV3%2ILOHLQWRKLV3%7ILOH5XQQLQJ35(30VKRXOG
IL[WKHSUREOHP

3URILOHU(UURU35)
ZDUQLQJ35(3,,1,7HQYLURQPHQWYDULDEOHQRWGHILQHG
7KH,1,7HQYLURQPHQWYDULDEOHVKRXOGSRLQWWRWKHGLUHFWRU\WKDWFRQWDLQV722/6,1,6HWWKH
,1,7HQYLURQPHQWYDULDEOHWRWKHGLUHFWRU\FRQWDLQLQJ\RXU722/6,1,DQGUHUXQ35(3

3URILOHU(UURU35)
ZDUQLQJ35(3,
SXEOLFV
VHFWLRQQRWIRXQGLQPDSILOHILOHQDPH
7KHPDSILOHLVFRUUXSW

3URILOHU(UURU35)
ZDUQLQJ35(3,
VWDWLFV\PEROV
VHFWLRQQRWIRXQGLQPDSILOHILOHQDPH
7KHPDSILOHLVFRUUXSW

3URILOHU(UURU35)
ZDUQLQJ35(3,HQWU\IXQFWLRQIXQFWLRQQRWIRXQG
Profiler Errors PRF1005 through PRF4642 Page 7 of 7

35(3FRXOGQRWILQGWKHVSHFLILHGVWDUWIXQFWLRQ HQWU\IXQFWLRQ LQWKHPDSILOH VHH6)VZLWFK 


3HUKDSVWKHIXQFWLRQQDPHLVPLVVSHOOHG

3URILOHU(UURU35)
ZDUQLQJ35(3,FDQQRWSURILOHIXQFWLRQIXQFWLRQLQILOHILOHQDPH
$VSHFLDOIXQFWLRQVXFKDVVHWMPSZDVVSHFLILHG

3URILOHU(UURU35)
ZDUQLQJ35(3,PRGXOHPRGXOHDOUHDG\LQFOXGHVSURILOHU'//ILOHQDPH
7KHVSHFLILHG(;(RU'//DOUHDG\LPSRUWVIURP352),/(5'//7KH(;( RU'// PD\KDYHEHHQ
PRGLILHGE\35(3XVLQJWKH20VZLWFKDQGWKHQUHQDPHG IURPDSSB;(WRDSS(;( EHIRUH
35(3ZDVUXQDJDLQ0DNHVXUHWKDWWKHPRGXOH (;(RU'// VSHFLILHGLVWKHRULJLQDOPRGXOH
DQGDPRGXOHPRGLILHGE\35(3

3URILOHU(UURU35)
ZDUQLQJ35(3,SUHIHUUHGORDGDGGUHVVQRWIRXQGLQPDSILOHILOHQDPHDVVXPHGDGGUHVV
&XUUHQWYHUVLRQVRIWKHOLQNHUOLVWWKHSUHIHUUHGORDGDGGUHVV WKDWLVZKHQWKH(;(JHWVORDGHG
DWWKLVDGGUHVVQRQHRIWKHUXQWLPHUHORFDWLRQDGGUHVVHVQHHGWREHIL[HGXS 35(3QHHGVWKLV
LQIRUPDWLRQ6RPHKRZWKLVLQIRUPDWLRQZDVPLVVLQJIURPWKHPDSILOH,IWKHODWHVWOLQNHUZDV
XVHGWKHPDSILOHZDVSUREDEO\HGLWHG5HJHQHUDWHWKHPDSILOHUHWDLQLQJWKHOLQHWKDWVWDWHVWKH
SUHIHUUHGORDGDGGUHVV

3URILOHU(UURU35)
ZDUQLQJ35(3,WLPHVWDPSVRIPDSILOHILOHQDPHDQGH[HFXWDEOHILOHGRQRWPDWFK
7KHPDSILOHLVQRWSURSHUO\V\QFKURQL]HGZLWKWKHH[HFXWDEOHILOH5HOLQNDQGUXQ35(3DJDLQ

3URILOHU(UURU35)
ZDUQLQJ352),/(PRGXOHQRWIRXQGLQ3%,ILOHILOHQDPH
$QDWWHPSWZDVPDGHWRSURILOHDSURJUDPEXWWKH(;(ZDVQRWPRGLILHGE\35(37KLVZDUQLQJ
RFFXUVZKLOHVHOHFWLYHO\SURILOLQJD'//WKDWLVFDOOHGE\WKH(;(

3URILOHU(UURU35)
ZDUQLQJ35(3,OLQHQXPEHUGXSOLFDWHGLQILOHILOHQDPH
7KHUHLVDSUREOHPZLWKWKHOLQHQXPEHUGHEXJLQIRUPDWLRQ7KHVDPHOLQHQXPEHUZDV
LGHQWLILHGZLWKWZRGLIIHUHQWDGGUHVVHV7KLVLVJHQHUDOO\QRWVHULRXV

3URILOHU(UURU35)
ZDUQLQJ352),/(5HDG3URFHVV0HPRU\LQWHUQDO17HUURUQXPEHURFFXUUHG
$QLQWHUQDOHUURURFFXUUHG7KHSURILOHUUHVXOWVPD\EHPHDQLQJOHVV

3URILOHU(UURU35)
ZDUQLQJ352),/(:ULWH3URFHVV0HPRU\LQWHUQDO17HUURUQXPEHURFFXUUHG
$QLQWHUQDOHUURURFFXUUHG7KHSURILOHUUHVXOWVPD\EHPHDQLQJOHVV
Resource Compiler Messages Page 1 of 24

Resource Compiler Messages-RCn


The following topics cover Resource Compiler Errors RC1000 through Warning RC4413:

l Resource Compiler Errors RC1000 through RC1208


l Resource Compiler Errors RC2001 through RC2129
l Resource Compiler Errors RC2130 through RC2236
l Resource Compiler Warnings RC4000 through RC4413

For information about Resource Compiler RWxxxx messages, see:

l Resource Compiler Messages (RWxxxx)

Resource Compiler Errors RC1000 through RC1208

The following topics cover Resource Compiler Errors RC1000 through Warning RC1208:

Resource Compiler Fatal Error RC1000


UNKNOWN FATAL ERROR
Note the circumstances of the error, try to isolate the problem, and create a reproducible test case,
then report this information to technical support.

Resource Compiler Fatal Error RC1002


out of heap space
The Resource Compiler ran out of storage for items that it stores in its heap. One of the following may
be a solution:

l Increase the Windows swap file space. Consider using the Control Panel, System icon,
Performance tab to increase your system’s virtual memory, reboot, and retry.
l Split the current file into two or more files and compile them separately.

Resource Compiler Fatal Error RC1003


error count exceeds number; stopping compilation
The number of errors was too great to continue compilation. Fix some errors and recompile.

Resource Compiler Fatal Error RC1004


unexpected end of file found
This error can be caused by omitting the linefeed and carriage return characters on the last line of a
text file.

Resource Compiler Fatal Error RC1005


file not found: filename
The file specified in the RC command line was not found. Check to see whether the file has been
moved to another directory and whether the filename or path is typed correctly. Files are searched for
using the INCLUDE environment variable or the Directories setting.

Resource Compiler Fatal Error RC1007


unrecognized option ’option’ in f’ilename’
Resource Compiler Messages Page 2 of 24

The specified option is not valid.

Resource Compiler Fatal Error RC1008


no input file specified
One or more source files must be specified on the Resource Compiler command line.

Resource Compiler Fatal Error RC1009


compiler limit : macros too deeply nested m
’ acro’
The Resource Compiler limit for macro nesting was exceeded. Revise the specified source file to
decrease the nesting depth of its macros.

Resource Compiler Fatal Error RC1010


no output file specified
The Resource Compiler command line did not specify a filename for the compiled resource file.

Resource Compiler Fatal Error RC1011


compiler limit : i’dentifier’ : macro definition too big
The macro definition was longer than allowed. Try to split the definition into shorter definitions.

Resource Compiler Fatal Error RC1012


unmatched parenthesis : missing c’haracter’
The parentheses in a preprocessor directive were not matched. The missing character is either a left or
right parenthesis.

Resource Compiler Fatal Error RC1013


mismatched parentheses
Make sure that every open parenthesis has a matching closing parenthesis.

Resource Compiler Fatal Error RC1014


too many include files : depth = l’evel’
The nesting depth of #include directives was too great. Open files can be included by the use of nested
directives. The source file containing the directive is counted as one of the files.

Resource Compiler Fatal Error RC1015


cannot open include file f’ilename’
The given include file either did not exist, could not be opened, or was not found. Make sure that the
environment settings are valid and that the correct path for the file is specified. Ensure that sufficient
file handles are available to the Resource Compiler. If the file is on a network drive, make sure that
you have permissions to open the file.

Resource Compiler Fatal Error RC1016


#if[n]def expected an identifier
The #ifdef or #ifndef conditional compilation directive was not supplied with an identifier to evaluate.
An identifier must be specified with the #ifdef and #ifndef directives.

Resource Compiler Fatal Error RC1017


invalid integer constant expression
The expression in an #if directive either did not exist or did not evaluate to a constant.
Resource Compiler Messages Page 3 of 24

Resource Compiler Fatal Error RC1018


unexpected ’#elif’
The #elif directive did not appear within an #if, #ifdef, or #ifndef construct. Make sure that there is an
#if, #ifdef, or #ifndef statement in effect before this statement.

Resource Compiler Fatal Error RC1019


unexpected ’#else’
The #else directive did not appear within an #if, #ifdef, or #ifndef construct. Make sure that there is an
#if, #ifdef, or #ifndef statement in effect before this statement.

Resource Compiler Fatal Error RC1020


unexpected ’#endif’
An #endif directive appeared without a matching #if, #ifdef, or #ifndef directive. Make sure that there
is a matching #endif for each #if, #ifdef, and #ifndef statement.

Resource Compiler Fatal Error RC1021


invalid preprocessor command s’ tring’
The characters following the number sign (#) did not form a valid preprocessor directive. The number
sign cannot be used as the first character in an identifier.

Resource Compiler Fatal Error RC1022


expected ’#endif’
An #if, #ifdef, or #ifndef directive was not terminated with an #endif directive. Make sure that there is
an #if, #ifdef, or #ifndef statement in effect before this statement.

Resource Compiler Fatal Error RC1023


cannot open source file ’filename’
The specified file either did not exist, could not be opened, or was not found. Make sure that the
environment settings are valid and that the correct path for the file is specified. If this error appears
without an error message, the Resource Compiler has run out of file handles.

Resource Compiler Fatal Error RC1047


"too many option options, ’string’"
The given option was specified too many times. The given string is the argument to the option that
caused the error.

Resource Compiler Fatal Error RC1048


unknown option ’character’ in o’ ption’
The given character was not a valid letter for the option.

Resource Compiler Fatal Error RC1049


invalid numerical argument string’

The Resource Compiler expected a numerical argument but received the given string. This error may
be caused by giving a hexadecimal number without the necessary \x prefix or by a misformed floating-
point number.

Resource Compiler Fatal Error RC1052


compiler limit : #if or #ifdef blocks nested too deeply
Resource Compiler Messages Page 4 of 24

The program exceeded the maximum allowable nesting levels for #if and #ifdef directives. This error
can be caused by include files that use these preprocessor directives.

Resource Compiler Fatal Error RC1067


compiler limit : identifier overflowed internal buffer
An internal compiler limit was exceeded.

Resource Compiler Fatal Error RC1101


no resource binary filename specified
The Rename Output (/fo) option was specified, but was not followed by filename. The following
syntax must be used with the /fo option: RC /fooutfilename infilename.rc

Resource Compiler Fatal Error RC1102


internal error : too many arguments to RCPP
Too many arguments were passed to the Resource Compiler preprocessor. Reduce the number of
symbols defined with the Define Symbols (/d) option by defining them in your source. This error can
also be caused by specifying too many include file search paths using the Include Search Path option
(/i).

Resource Compiler Fatal Error RC1103


invalid switch, option
The specified option is not a valid Resource Compiler option.

Resource Compiler Fatal Error RC1105


invalid switch, option: too many /d switches
Too many symbols were defined using the Define Symbols (/d) option. Define some symbols in your
source and recompile.

Resource Compiler Fatal Error RC1106


invalid switch: option
The specified option is not a valid Resource Compiler option. The following options are valid:
/r Emit .RES file
/v Verbose (print progress messages)
/d Define a symbol
/fo Rename .RES file
/l Default language ID in hex
/I Add a path for INCLUDE searches
/x Ignore INCLUDE environment variable
/c Define a code page used by NLS Conversion

Resource Compiler Fatal Error RC1107


invalid usage; use RC /? for Help
An invalid Resource Compiler option was specified. Valid options are one of the following: /r, /v, /d,
/fo, /l, /i, /x, or /c:

Resource Compiler Fatal Error RC1109


error creating resource-name
Could not create specified .RES file. Make sure it is not being created on a read-only drive. Use the /V
option to find out whether the file is being created.
Resource Compiler Messages Page 5 of 24

Resource Compiler Fatal Error RC1110


could not open filename
RC could not open the specified resource script file. Make sure that the file exists.

Resource Compiler Fatal Error RC1116


RC terminating after preprocessor errors
The Resource Compiler halted due to other errors. Fix the other errors and recompile.

Resource Compiler Fatal Error RC1120


out of memory, needed number bytes
The Resource Compiler ran out of storage for items that it stores in its heap. Usually this is the result
of having too many symbols. One of the following may be a solution:

l Increase the Windows swap file space. Consider using the Control Panel, System icon,
Performance tab to increase your system’s virtual memory, reboot, and retry.
l Eliminate unnecessary include files, especially unneeded #defines and function prototypes.
l Split the current file into two or more files and compile them separately.

Resource Compiler Fatal Error RC1121


I/O error reading file
The Resource Compiler was not able to read a file. Check that the drive containing the file is available
and that the file is valid.

Resource Compiler Fatal Error RC1122


I/O error writing file
The Resource Compiler could not write to a file. This error may be caused by insufficient disk space.
You must have free space equivalent to about twice the size of the executable file you are creating.
Other possible reasons for this error are:

l Writing to a read-only volume


l Writing to a bad sector
l A sharing violation

Resource Compiler Fatal Error RC1123


I/O error seeking in file
The compiler was unable to complete an I/O operation.

Resource Compiler Fatal Error RC1201


invalid switch - missing include path after /i
The Specify Include Path (/i) option was specified, but was not followed by a path.

Resource Compiler Fatal Error RC1202


invalid switch - missing default language ID after /l
The Specify Default Language (/l) option was specified, but was not followed by a hexadecimal
language ID.

Resource Compiler Fatal Error RC1203


invalid hexadecimal default language ID specified.
Resource Compiler Messages Page 6 of 24

The Specify Default Language (/l) option was specified, but was followed by an invalid hexadecimal
language ID. See the Platform SDK for a list of valid language IDs.

Resource Compiler Fatal Error RC1204


Invalid switch - missing code page after /c
The Specify Code Page (/c) option was specified, but it was not followed by a code page.

Resource Compiler Fatal Error RC1205


invalid code page
The Specify Code Page (/c) option was specified, but was followed by an invalid code page. See Code
Pages in the the online documentation for more information.

Resource Compiler Fatal Error RC1206


specified code page at cmd line does not exist in registry
The Specify Code Page (/c) option was specified, but was followed by a code page whose location is
not specified in the registry.

Resource Compiler Fatal Error RC1207


default code page is invalid
The code page specified by the RCCODEPAGE environment variable is not valid. See Code Pages in
the online documentation for more information.

Resource Compiler Fatal Error RC1208


input file has .RES extension
The .RES extension is used for Resource Compiler output. The .RC extension should be used for
Resource Compiler scripts.

Return to Main Resource Compiler Messages Page

Resource Compiler Errors RC2001 through RC2129

Resource Compiler Error RC2001


newline in constant
A string constant was continued on a second line without either a backslash (\) or closing and opening
double quotation marks ("). To break a string constant that is on two lines in the source file, do one of
the following:

l End the first line with the line-continuation character, a backslash.


l Close the string on the first line with a double quotation mark and open the string on the next
line with another quotation mark.

It is not sufficient to end the first line with \n, the escape sequence for embedding a newline character
in a string constant.

Resource Compiler Error RC2003


expected ’defined id’
An identifier was expected after the specified preprocessing keyword.

Resource Compiler Error RC2004


Resource Compiler Messages Page 7 of 24

expected ’defined(id)’
An identifier was expected after the left parenthesis following the specified preprocessing keyword.

Resource Compiler Error RC2005


#line expected a line number, found t’oken’
A #line directive lacked the required line-number specification.

Resource Compiler Error RC2006


#include expected a filename, found token’

An #include directive lacked the required filename specification.

Resource Compiler Error RC2007


#define syntax
An identifier was expected following #define in a preprocessing directive.

Resource Compiler Error RC2008


’character’ : unexpected in macro definition
The given character was found immediately following the name of the macro.

Resource Compiler Error RC2009


reuse of macro formal ’identifier’
The given identifier was used more than once in the formal parameter list of a macro definition.

Resource Compiler Error RC2010


’character’ : unexpected in formal list
The given character was used incorrectly in the formal parameter list of a macro definition.

Resource Compiler Error RC2012


missing name following ’<’
An #include directive lacked the required filename specification.

Resource Compiler Error RC2013


missing ’>’
The closing angle bracket (>) was missing from an #include directive.

Resource Compiler Error RC2014


preprocessor command must start as first non-whitespace
Non-white-space characters appeared before the number sign (#) of a preprocessor directive on the
same line.

Resource Compiler Error RC2015


too many chars in constant
A character constant contained more than two characters. Character constants are limited to one
character (standard character constants) or two characters (long character constants). Note that an
escape sequence (for example, \t for tab) is converted to a single character.

Resource Compiler Error RC2016


no closing single quote
A newline character was found before the closing single quotation mark of a character constant.
Resource Compiler Messages Page 8 of 24

Resource Compiler Error RC2017


illegal escape sequence
An escape sequence appeared where one was not expected. An escape sequence - a backslash ( \ )
followed by a number or letter - may occur only in a character or string constant.

Resource Compiler Error RC2018


unknown character ’hexnumber’
The ASCII character corresponding to the given hexadecimal number appeared in the source file but is
an illegal character. One possible cause of this error is corruption of the source file.

Resource Compiler Error RC2019


expected preprocessor directive, found ’character’
The given character followed a number sign (#), but it was not the first letter of a preprocessor
directive.

Resource Compiler Error RC2020


illegal digit number for base radix
The specified digit is not a valid digit for the base specified by radix. Either the digit or the radix could
be incorrect. Octal digits must be numbers from 0 to 7, and hexadecimal digits must be numbers from
0 to 9 or letters from A through E.

Resource Compiler Error RC2021


expected exponent value, not ’character’
The given character was used as the exponent of a floating-point constant but was not a valid number.

Resource Compiler Error RC2022


’number’ : too big for character
The octal number following a backslash (\) in a character or string constant was too large to be
represented as a character.

Resource Compiler Error RC2101


Invalid directive in preprocessed RC file
The RC file contains a #pragma directive. Use the #ifndef preprocessor directive with the
RC_INVOKED constant that the Resource Compiler defines when it processes an include file. Place
the #pragma directive inside a block of code that is not processed when the RC_INVOKED constant
is defined. Code in the block is processed only by the C/C++ compiler and not by the Resource
Compiler. The following sample code demonstrates this technique:

#ifndef RC_INVOKED
#pragma pack(2) // C/C++ only, ignored by Resource Compiler
#endif

The #pragma preprocessor directive has no meaning in an .RC file. The #include preprocessor
directive is used frequently in an .RC file to include a header file (either a project-based custom header
file or a standard header file provided by Microsoft with one of its products). Some of these include
files contain the #pragma directive. Because a header file can include one or more other header files,
Resource Compiler Messages Page 9 of 24

the file that contains the offending #pragma directive may not be immediately obvious. The #ifndef
RC_INVOKED technique can control including header files in project-based header files.

Resource Compiler Error RC2102


string literal too long
An RCDATA string exceeded the maximum allowable length.

Resource Compiler Error RC2103


unexpected end of file in string literal
An end of file was found before the end of a string. The string is probably missing a closing double
quotation mark (").

Resource Compiler Error RC2104


undefined keyword or key name: key
The specified keyword or key name was not defined. If you encounter the following error message:
undefined keyword or key name: MFT_STRING
Open the file ...\mfc\include\AfxRes.h and add the following include directive:
#include <winresrc.h>

Resource Compiler Error RC2105


BEGIN expected in string table
The BEGIN keyword must immediately follow the ACCELERATORS keyword.

Resource Compiler Error RC2106


BEGIN expected in accelerator table
The BEGIN keyword must immediately follow the ACCELERATORS keyword.

Resource Compiler Error RC2107


expected numeric command value
RC was expecting a numeric idvalue field in the ACCELERATORS statement. Make sure that you
have used a #define constant to specify the value and that the constant is spelled correctly.

Resource Compiler Error RC2108


unbalanced parentheses
An open parenthesis was not matched with a closing parenthesis.

Resource Compiler Error RC2109


expected numerical dialog constant
A DIALOG statement requires integer values for the x, y, width, and height fields. Make sure these
values are included after the DIALOG keyword and that they are not negative.

Resource Compiler Error RC2110


expected numerical dialog constant
A DIALOG statement requires integer values for the x, y, width, and height fields. Make sure these
values are included after the DIALOG keyword and that they are not negative.

Resource Compiler Error RC2111


invalid control type
Each CONTROL statement in a DIALOG statement must be one of the following: 3STATE, AUTO3,
Resource Compiler Messages Page 10 of 24

AUTOCHECK, AUTORADIO, BEDIT, CHECKBOX, COMBOBOX, CONTROL, CTEXT,


DEFPUSHBUTTON, EDITTEXT, GROUPBOX, HEDIT, ICON, IEDIT, LISTBOX, LTEXT,
PUSHBOX, PUSHBUTTON, RADIOBUTTON, RTEXT, SCROLLBAR, USERBUTTON. Make
sure these CONTROL statements are spelled correctly.

Resource Compiler Error RC2112


BEGIN expected in dialog
The BEGIN keyword must immediately follow the DIALOG keyword.

Resource Compiler Error RC2113


END expected in dialog
The END keyword must occur at the end of a DIALOG statement. Make sure there are no open
quotes left from the preceding statement.

Resource Compiler Error RC2114


expected control class name
The class field of a CONTROL statement in the DIALOG statement must be one of the following
types: BUTTON, COMBOBOX, EDIT, LISTBOX, SCROLLBAR, STATIC, or user-defined. Make
sure the class is spelled correctly.

Resource Compiler Error RC2115


text string or ordinal expected in control
The text field of a CONTROL statement in the DIALOG statement must be either a text string or an
ordinal reference to the type of control is expected. If using an ordinal, make sure that you have a
#define statement for the control.

Resource Compiler Error RC2116


expecting number for ID
Expecting a number for the id field of a control statement in the DIALOG statement. Make sure you
have a number or #define statement for the control ID.

Resource Compiler Error RC2117


expected numeric point size
The pointsize field of the FONT option in the DIALOG statement must be an integer point size value.

Resource Compiler Error RC2118


expected font face name
The typeface field of the FONT option in the DIALOG statement must be an ASCII character string
enclosed in double quotation marks. This field specifies the name of a font.

Resource Compiler Error RC2119


expecting quoted string in dialog title
The captiontext field of the CAPTION option in the DIALOG statement must be an ASCII character
string enclosed in double quotation marks.

Resource Compiler Error RC2120


expecting quoted string in dialog class
The class field of the CLASS option in the DIALOG statement must be an integer or a string,
enclosed in double quotation marks.
Resource Compiler Messages Page 11 of 24

Resource Compiler Error RC2121


BEGIN expected in menu
The BEGIN keyword must immediately follow the MENU keyword.

Resource Compiler Error RC2122


unknown menu subtype
The item-definition field of the MENU statement can contain only MENUITEM and POPUP
statements.

Resource Compiler Error RC2123


END expected in menu
The END keyword must come at the end of a MENU statement. Make sure you do not have any open
quotation marks or a mismatched pair of BEGIN and END statements.

Resource Compiler Error RC2124


empty menus not allowed
An END keyword appears before any menu items are defined in the MENU statement. Empty menus
are not permitted by the Resource Compiler. Make sure you do not have any open quotation marks
within the MENU statement.

Resource Compiler Error RC2125


expected ID value for menuitem
The MENU statement must contain a menuID field, which specifies the name or number that identifies
the menu resource.

Resource Compiler Error RC2126


expected menu string
Each MENUITEM and POPUP statement must contain a text field, which is a string enclosed in
double quotation marks that specifies the name of the menu item or pop-up menu. A MENUITEM
SEPARATOR statement requires no quoted string.

Resource Compiler Error RC2127


version WORDs separated by commas expected
Version numbers in a version resource should be of type WORD, and separated by commas.

Resource Compiler Error RC2128


DWORD expected
A valid version number was not found. It must be a DWORD type.

Resource Compiler Error RC2129


BEGIN expected in VERSIONINFO resource
The BEGIN keyword must immediately follow the VERSIONINFO keyword.

Return to Main Resource Compiler Messages Page

Resource Compiler Errors RC2130 through RC2236

Resource Compiler Error RC2130


Resource Compiler Messages Page 12 of 24

#line expected a string containing the file name, found token’



A #line directive was missing a required filename.

Resource Compiler Error RC2131


expecting quoted string for key
The field for this statement must be a character string enclosed in double quotation marks.

Resource Compiler Error RC2132


expected VALUE, BLOCK, or, END keyword
A block in a VERSION resource doesn’t end properly, or a new block doesn’t begin properly. This
results in a VERSION statement that is not a valid block.

Resource Compiler Error RC2133


unexpected value in value data
The raw-data values in the RCDATA statement must be integers or strings, each separated by a
comma. Make sure you did not leave out a comma or leave out a quotation mark around a string.

Resource Compiler Error RC2134


BEGIN expected in RCDATA
The BEGIN keyword must immediately follow the RCDATA keyword.

Resource Compiler Error RC2135


file not found: filename
The file specified in the RC command line was not found. Check to see whether the file has been
moved to another directory and whether the filename or path is typed correctly. Files are searched for
using the INCLUDE environment variable or the visual development environment INCLUDE
directory setting (Tools menu, Options item, Directories tab).

Resource Compiler Error RC2136


missing ’=’ in EXSTYLE=<flags>
An equal sign (=) was missing from an EXSTYLE (Extended Style Flags) statement. When the
EXSTYLE is embedded in the DIALOG or MENU statement it must have the following form:
EXSTYLE=FLAGS

Resource Compiler Error RC2137


empty character constant
A pair of single quotes was found with no character specified between them.

Resource Compiler Error RC2138


unmatched close comment ’/*’
An open comment sequence (/*) was not matched with a close comment sequence (*/) This error can
be caused by nesting comments.

Resource Compiler Error RC2139


VERSION not a number
A VERSION resource must be a number.

Resource Compiler Error RC2140


CHARACTERISTICS not a number
Resource Compiler Messages Page 13 of 24

A CHARACTERISTICS resource must be a number.

Resource Compiler Error RC2141


invalid type
A different type was expected.

Resource Compiler Error RC2142


ellipsis requires three periods
An incorrect number of periods (.) was used in an ellipsis.

Resource Compiler Error RC2143


font names must be ordinals
The pointsize field in the FONT statement must be an integer, not a string.

Resource Compiler Error RC2144


PRIMARY LANGUAGE ID not a number
The PRIMARY LANGUAGE ID must be a hexadecimal language ID. See Language and Country
Strings in the online documentation for a list of valid Language IDs.

Resource Compiler Error RC2145


PRIMARY LANGUAGE ID too large
The PRIMARY LANGUAGE ID must be a valid hexadecimal language ID. See Language and
Country Strings in the Ronline documentation for a list of valid Language IDs.

Resource Compiler Error RC2146


missing COMMA in LANGUAGE statement
The comma separating the primary language and secondary language is missing. The LANGUAGE
statement must use the following syntax: LANGUAGE primary_language_ID,secondary_language_ID

Resource Compiler Error RC2147


SUBLANGUAGE ID not a number
The SUBLANGUAGE ID value must be a number. The LANGUAGE statement must use the
following syntax: LANGUAGE primary_language_ID,secondary_language_ID Valid
SUBLANGUAGE IDs are defined as SUBLANG_ constants in the WINNT.H file.

Resource Compiler Error RC2148


SUBLANGUAGE ID too large
The SUBLANGUAGE ID value was out of range. The LANGUAGE statement must use the
following syntax: LANGUAGE primary_language_ID,secondary_language_ID Valid
SUBLANGUAGE IDs are defined as SUBLANG_ constants in the WINNT.H file.

Resource Compiler Error RC2149


expected numeric constant in string table
A numeric constant, defined in a #define statement, must immediately follow the BEGIN keyword in a
STRINGTABLE statement.

Resource Compiler Error RC2150


expected string in STRINGTABLE
A string is expected after each stringid value in a STRINGTABLE statement.
Resource Compiler Messages Page 14 of 24

Resource Compiler Error RC2151


cannot re-use string constants
You are using the same value twice in a STRINGTABLE statement. Make sure you are not mixing
overlapping decimal and hexadecimal values. Each ID in a STRINGTABLE must be unique. For
maximum efficiency use contiguous constants that start on a multiple of 16.

Resource Compiler Error RC2152


invalid control character
A control character in the ACCELERATORS statement is invalid. A valid control character consists
of one letter (only) following a caret (^).

Resource Compiler Error RC2153


hex constants must have at least 1 hex digit
An empty hexadecimal constant was found.

Resource Compiler Error RC2154


control character out of range [^A - ^Z]
A control character in the ACCELERATORS statement is invalid. The character following the caret
(^) must be between A and Z, inclusive.

Resource Compiler Error RC2155


invalid accelerator
An event field in the ACCELERATORS statement was not recognized or was more than two
characters in length.

Resource Compiler Error RC2156


expected string or constant accelerator command
RC was not able to determine what kind of key is being set up for the accelerator. The event field in
the ACCELERATORS statement might be invalid.

Resource Compiler Error RC2157


expected comma in accelerator table
The Resource Compiler requires a comma between the event and idvalue fields in the
ACCELERATORS statement.

Resource Compiler Error RC2159


invalid accelerator type [ASCII or VIRTKEY]
The type field in the ACCELERATORS statement must contain either the ASCII or VIRTKEY value.

Resource Compiler Error RC2160


## cannot occur at the beginning of a macro definition
A macro definition began with a token-pasting operator (##).

Resource Compiler Error RC2161


## cannot occur at the end of a macro definition
A macro definition ended with a token-pasting operator (##).

Resource Compiler Error RC2162


Resource Compiler Messages Page 15 of 24

expected macro formal parameter


The token following a stringizing operator (#) was not a formal parameter name.

Resource Compiler Error RC2163


accelerator type required [ASCII or VIRTKEY]
The type field in the ACCELERATORS statement must contain either the ASCII or VIRTKEY value.

Resource Compiler Error RC2164


unexpected value in RCDATA
The raw-data values in the RCDATA statement must be integers or strings, each separated by a
comma. Make sure you did not leave out a comma or leave out a quotation mark around a string.

Resource Compiler Error RC2165


string not found in DLGINCLUDE statement
The statement did not specify a valid include file. The DLGINCLUDE statement must use the
following syntax: DLGINCLUDE "filename.h"

Resource Compiler Error RC2166


numeric value expected at line
The resource on the specified line must be a numeric value.

Resource Compiler Error RC2167


unrecognized VERSIONINFO field; BEGIN or comma expected
An unrecognized field was found in the FIXED part of a VERSIONINFO structure declaration. A
VERSIONINFO field must be DWORDS separated by a comma.

Resource Compiler Error RC2168


resource too large
The size limitation of a resource was exceeded. This limit does not apply to cursors, icons, bitmaps, or
other file-based resources.

Resource Compiler Error RC2169


resource file filename is not in 2.03 format
The specified resource used a format earlier than version 2.03. The resource file must be converted or
re-created using the format for version 3.00 or later.

Resource Compiler Error RC2170


bitmap file filename is not in 3.00 format
Bitmaps using the Windows version 2.x format cannot be used in version 3.x resource files. The
bitmap must be redrawn or converted to 3.x format.

Resource Compiler Error RC2171


unknown DIB header format
The bitmap header is not a BITMAPCOREHEADER or BITMAPINFOHEADER structure.

Resource Compiler Error RC2174


bitmap file filename is not in 2.03 format
A bitmap used a format earlier than version 2.03. The bitmap must be converted or redrawn using the
format for version 3.00 or later.
Resource Compiler Messages Page 16 of 24

Resource Compiler Error RC2175


resource file filename is not in 3.00 format
The specified resource used a format earlier than version 3.00. The resource file must be converted or
recreated using the format for version 3.00 or later.

Resource Compiler Error RC2176


old DIB in filename.
An old format Device Independent Bitmap was found in the specified file. It should be converted to
the current format.

Resource Compiler Error RC2177


constant too big
A constant value was too large to be represented in the type to which it was assigned.

Resource Compiler Error RC2180


unable to open temporary file
The Resource Compiler was unable to open a temporary file. The probable cause is either that you do
not have write permissions for the directory, or that the directory does not exist. The Resource
Compiler attempts to use these files in the directory specified by the TMP (or
GetSystemTempDirectory) environment variable or the current directory if none is specified.

Resource Compiler Error RC2181


duplicate font ID fontID
The specified font ID was already defined.

Resource Compiler Error RC2189


#error : error
This error is used to display other error messages.

Resource Compiler Error RC2235


too many arguments supplied
An expression contained more formal parameters than expected.

Resource Compiler Error RC2236


required parameter missing
An expression contained fewer formal parameters than expected.

Return to Main Resource Compiler Messages Page

Resource Compiler Warnings RC4000 through RC4413

The following topics cover Resource Compiler Warnings RC4000 through RC4413:

Resource Compiler Warning RC4000


UNKNOWN WARNING
Note the circumstances of the warning, try to isolate the problem and create a reproducible test case,
then consult the technical-support help file or the technical-support section in one of your manuals.
Resource Compiler Messages Page 17 of 24

Resource Compiler Warning RC4002


too many actual parameters for macro ’identifier’
The number of actual parameters specified with the given identifier was greater than the number of
formal parameters given in the macro definition of the identifier. The additional actual parameters
were collected but ignored during expansion of the macro.

Resource Compiler Warning RC4003


not enough actual parameters for macro ’identifier’
The number of actual parameters specified with the given identifier was less than the number of formal
parameters given in the macro definition of the identifier. When a formal parameter is referenced in the
definition and the corresponding actual parameter has not been provided, empty text is substituted in
the macro expansion.

Resource Compiler Warning RC4004


missing close parenthesis after ’defined’
An opening parenthesis was not matched with a closing parenthesis.

Resource Compiler Warning RC4005


’identifier’ : macro redefinition
The given identifier was defined twice. The compiler used the second macro definition. This warning
can be caused by defining a macro on the command line and in the code with a #define directive. It
also can be caused by macros imported from include files. To eliminate the warning, either remove one
of the definitions or use an #undef directive before the second definition.

Resource Compiler Warning RC4006


#undef expected an identifier
The name of the identifier whose definition was to be removed was not given with the #undef
directive. The #undef directive was ignored.

Resource Compiler Warning RC4009


string too big, trailing chars truncated
A string was too large to fit in a buffer. Trailing characters were truncated and the remaining string
was used.

Resource Compiler Warning RC4011


identifier truncated to ’identifier’
An identifier was too long and was truncated to the name shown in the warning.

Resource Compiler Warning RC4012


float constant in a cross compilation
A float constant may not have the same value on different target platforms.

Resource Compiler Warning RC4067


unexpected characters following ’token’ directive - newline expected
A newline character should follow the specified token.

Resource Compiler Warning RC4079


unexpected token ’token’
Resource Compiler Messages Page 18 of 24

Check the syntax of the line containing the specified token.

Resource Compiler Warning RC4093


unescaped newline in character constant in inactive code
The constant expression of an #if, #elif, #ifdef, or #ifndef preprocessor directive evaluated to zero,
making the code that follows inactive. Within that inactive code, a newline character appeared within a
set of single or double quotation marks. All text until the next double quotation mark was considered
to be within a character constant.

Resource Compiler Warning RC4111


unexpected token ’string’
Check the syntax of the line containing the specified token.

Resource Compiler Warning RC4117


macro name ’macro’ is reserved, macro ignored
The specified macro was given a reserved name.

Resource Compiler Warning RC4203


SHIFT or CONTROL used without VIRTKEY
In an accelerator table resource, SHIFT or CONTROL require VIRTKEY. Because SHIFT and
CONTROL are indicated as flag bits in a VIRTKEY type accelerator, they cannot exist independent
from a VIRTKEY.

Resource Compiler Warning RC4204


ASCII character not equivalent to virtual key code
A string literal was used for the virtual key code in a VIRTKEY type accelerator. This warning lets
you continue, but be aware that the accelerator keys generated may not match the string you
indicated. (VIRTKEYs use different key codes than ASCII accelerators.) While string literals are
syntactically valid, you can only ensure that you get the accelerator you want by using the VK_*
#define values in WINDOWS.H.

Resource Compiler Warning RC4205


string literal longer than 256 - stored anyway
A literal sting exceeded 256 characters. It was stored intact.

Resource Compiler Warning RC4206


name string too long - truncated at 256
A name string exceeded the limit of 256 characters. It was truncated to 256 characters.

Resource Compiler Warning RC4207


type string too long - truncated at 256
A type string exceeded the limit of 256 characters. It was truncated to 256 characters.

Resource Compiler Warning RC4208


title string too long - truncated at 256
A title string exceeded the limit of 256 characters. It was truncated to 256 characters.

Resource Compiler Warning RC4413


cannot determine file type for f’ilename’ : assuming 8-bit ASCII
Resource Compiler Messages Page 19 of 24

The type of specified file is not known to the Resource Compiler. It was compiled as an 8-bit ASCII
file.

Return to Main Resource Compiler Messages Page

Resource Compiler Errors RW1004 through RW4004


The following topics cover Resource Compiler Errors RW1004 through RW4004:

Resource Compiler Fatal Error RW1004


Unexpected end of file
This error can be caused by omitting the linefeed and carriage-return characters on the last line of a
text file.

Resource Compiler Fatal Error RW1009


Error creating resource-name
Could not create specified .RES file. Make sure it is not being created on a read-only drive. Use the /V
option to find out whether the file is being created.

Resource Compiler Fatal Error RW1016


RC terminating after preprocessor errors
The Resource Compiler halted due to other errors. Fix the other errors and recompile.

Resource Compiler Fatal Error RW1021


I/O error reading file
The Resource Compiler was not able to read a file. Check that the drive containing the file is available
and that the file is valid.

Resource Compiler Fatal Error RW1022


I/O error writing file
The Resource Compiler could not write to a file. This error may be caused by insufficient disk space.
You must have free space equivalent to about twice the size of the executable file you are creating.
Other possible reasons for this error are:

l Writing to a read-only volume


l Writing to a bad sector
l A sharing violation

Resource Compiler Fatal Error RW1023


I/O error writing file, drive full
The Resource Compiler could not write a file to a drive because the drive was full. You must have
free space equivalent to about twice the size of the executable file you are creating.

Resource Compiler Fatal Error RW1025


Out of far heap memory
There wasn’t enough memory. Consider using the Control Panel, System icon, Performance tab to
increase your system’s virtual memory, reboot, and retry.
Resource Compiler Messages Page 20 of 24

Resource Compiler Fatal Error RW1030


Output Error
The output error can be caused by any of following conditions:

l Errors occurred when linking file


LINK failed. See Set Linker Options and Linker Reference for more information about linking
an executable.
l .EXE file too large; relink with higher /ALIGN value
f the .EXE file is larger than 800K, you should use the /ALIGN:32 value on your LINK line.
l File not created by LINK
You must create the .EXE file with a version of Microsoft LINK later than 5.0 or with LINKW.
l Invalid .EXE file
Make sure that the linker created the .EXE file correctly and that the file exists. You can check
the .EXE file with the DUMPBIN utility.
l Not a Microsoft Windows format .EXE file
Make sure that the linker created the .EXE file correctly and that the file exists. You can check
the .EXE file with the DUMPBIN utility.
l Unable to create destination
RC was not able to create the destination file. Make sure that there is enough disk space and
that you have write permission on the volume.
l Unable to open exe-file
RC could not open this .EXE file. Make sure that the linker created it correctly and that the file
exists.

Resource Compiler Error RW2001


Invalid directive in preprocessed RC file
The RC file contains a #pragma directive. Use the #ifndef preprocessor directive with the
RC_INVOKED constant that the Resource Compiler defines when it processes an include file. Place
the #pragma directive inside a block of code that is not processed when the RC_INVOKED constant
is defined. Code in the block is processed only by the C/C++ compiler and not by the Resource
Compiler. The following sample code demonstrates this technique:

#ifndef RC_INVOKED
#pragma pack(2) // C/C++ only, ignored by Resource Compiler
#endif

The #pragma preprocessor directive has no meaning in an .RC file. The #include preprocessor
directive is used frequently in an .RC file to include a header file (either a project-based custom header
file or a standard header file provided by Microsoft with one of its products). Some of these include
files contain the #pragma directive. Because a header file can include one or more other header files,
the file that contains the offending #pragma directive may not be immediately obvious. The #ifndef
RC_INVOKED technique can control including header files in project-based header files.

Resource Compiler Error RW2002


Parsing error
The parsing error can be caused by any of following conditions:
Resource Compiler Messages Page 21 of 24

l Accelerator type required (ASCII or VIRTKEY)


The type field in the ACCELERATORS statement must contain either the ASCII or VIRTKEY
value.
l BEGIN expected in accelerator table
The BEGIN keyword must immediately follow the ACCELERATORS keyword.
l BEGIN expected in dialog
The BEGIN keyword must immediately follow the DIALOG keyword.
l BEGIN expected in menu
The BEGIN keyword must immediately follow the MENU keyword.
l BEGIN expected in RCData
The BEGIN keyword must immediately follow the RCDATA keyword.
l BEGIN keyword expected in string table
The BEGIN keyword must immediately follow the STRINGTABLE keyword.
l Cannot re-use string constants
You are using the same value twice in a STRINGTABLE statement. Make sure you are not
mixing overlapping decimal and hexadecimal values. Each ID in a STRINGTABLE must be
unique. For maximum efficiency use contiguous constants that start on a multiple of 16.
l Control character out of range [^A - ^Z]
A control character in the ACCELERATORS statement is invalid. The character following the
caret (^) must be between A and Z, inclusive.
l Empty menus not allowed
An END keyword appears before any menu items are defined in the MENU statement. Empty
menus are not permitted by the Resource Compiler. Make sure you do not have any open
quotation marks within the MENU statement.
l END expected in dialog
The END keyword must occur at the end of a DIALOG statement. Make sure there are no open
quotes left from the preceding statement.
l END expected in menu
The END keyword must come at the end of a MENU statement. Make sure you do not have
any open quotation marks or a mismatched pair of BEGIN and END statements.
l Expected comma in accelerator Table
RC requires a comma between the event and idvalue fields in the ACCELERATORS statement.
l Expected control class name
The class field of a CONTROL statement in the DIALOG statement must be one of the
following types: BUTTON, COMBOBOX, EDIT, LISTBOX, SCROLLBAR, STATIC, or
user-defined. Make sure the class is spelled correctly.
l Expected font face name
The typeface field of the FONT option in the DIALOG statement must be an ASCII character
string enclosed in double quotation marks. This field specifies the name of a font.
l Expected ID value for menuitem
The MENU statement must contain a menuID field, which specifies the name or number that
identifies the menu resource.
l Expected menu string
Each MENUITEM and POPUP statement must contain a text field, which is a string enclosed in
double quotation marks that specifies the name of the menu item or pop-up menu. A
MENUITEM SEPARATOR statement requires no quoted string.
l Expected numeric command value
RC was expecting a numeric idvalue field in the ACCELERATORS statement. Make sure that
Resource Compiler Messages Page 22 of 24

you have used a #define constant to specify the value and that the constant is spelled correctly.
l Expected numeric constant in string table
A numeric constant, defined in a #define statement, must immediately follow the BEGIN
keyword in a STRINGTABLE statement.
l Expected numeric point size
The pointsize field of the FONT option in the DIALOG statement must be an integer point size
value.
l Expected numerical dialog constant
A DIALOG statement requires integer values for the x, y, width, and height fields. Make sure
that these values are included after the DIALOG keyword and that they are not negative.
l Expected string in STRINGTABLE
A string is expected after each stringid value in a STRINGTABLE statement.
l Expected string or constant accelerator command
RC was not able to determine what kind of key is being set up for the accelerator. The event
field in the ACCELERATORS statement might be invalid.
l Expecting number for ID
Expecting a number for the id field of a control statement in the DIALOG statement. Make sure
you have a number or #define statement for the control ID.
l Expecting quoted string in dialog class
The class field of the CLASS option in the DIALOG statement must be an integer or a string,
enclosed in double quotation marks.
l Expecting quoted string in dialog title
The captiontext field of the CAPTION option in the DIALOG statement must be an ASCII
character string enclosed in double quotation marks.
l File not found: filename
The file specified in the RC command line was not found. Check to see whether the file has been
moved to another directory and whether the filename or path is typed correctly. Files are
searched for using the INCLUDE environment variable or the Visual Workbench setting, if
available.
l Font names must be ordinals
The pointsize field in the FONT statement must be an integer, not a string.
l Invalid accelerator
An event field in the ACCELERATORS statement was not recognized or was more than two
characters in length.
l Invalid accelerator type (ASCII or VIRTKEY)
The type field in the ACCELERATORS statement must contain either the ASCII or VIRTKEY
value.
l Invalid control character
A control character in the ACCELERATORS statement is invalid. A valid control character
consists of one letter (only) following a caret (^).
l Invalid control type
Each control statement in a DIALOG statement must be one of the following: CHECKBOX,
COMBOBOX, CONTROL, CTEXT, DEFPUSHBUTTON, EDITTEXT, GROUPBOX,
ICON, LISTBOX, LTEXT, PUSHBUTTON, RADIOBUTTON, RTEXT, SCROLLBAR.
Make sure these control statements are spelled correctly.
l Invalid type
The resource type was not among the types defined in the WINDOWS.H file.
l Text string or ordinal expected in control
The text field of a CONTROL statement in the DIALOG statement must be either a text string
or an ordinal reference to the type of control is expected. If using an ordinal, make sure that you
Resource Compiler Messages Page 23 of 24

have a #define statement for the control.


l Mismatched parentheses
Make sure you have closed every open parenthesis in the DIALOG statement.
l Unexpected value in RCData
The raw-data values in the RCDATA statement must be integers or strings, each separated by a
comma. Make sure you did not leave out a comma or leave out a quotation mark around a
string.
l Unknown menu subtype
The item-definition field of the MENU statement can contain only MENUITEM and POPUP
statements.

Resource Compiler Error RW2003


Generation Error
General errors can be caused by any of following conditions:

l Error: Bitmap file resource-file is not in 3.00 format


Bitmaps using the Windows version 2.x format cannot be used in version 3.x resource files. The
bitmap must be redrawn or converted to 3.x format.
l Error: Old DIB in resource-name.
A Device Independent Bitmap (DIB) in the specified resource is not compatible with the 3.0
format. The bitmap must be redrawn or converted to the 3.x format.
l Error: Resource file resouce-name is not in 3.00 format
An icon or cursor in the specified resource used a previous format. The icon or cursor must be
redrawn or converted to the 3.x format.
l Unknown DIB header format
The bitmap header is not a BITMAPCOREHEADER or BITMAPINFOHEADER structure.
l Bitmap file resource file is not in 2.03 format
A bitmap used a format earlier than version 2.03. The bitmap must be converted or redrawn
using the format for version 3.00 or later.
l Resource file is not in 3.00 format
A cursor or icon used a format earlier than version 3.00. The resource must be converted or
redrawn using the format for version 3.00 or later.
l Unable to open temporary file
The Resource Compiler was unable to open a temporary file. The probable cause is either that
you do not have write permissions for the directory or that the directory does not exist. The
Resource Compiler attempts to use these files in the directory specified by the TMP
environment variable or the current directory if none is specified.

Resource Compiler Warning RW4001


.EXE processing options (/L /M /P /T /K /E /31 or /30)
.EXE processing options (/L /M /P /T /K /E /31 or /30) were specified when no executable file would
be processed. These options can only be used when the result is an .EXE file (not a .RES file).

Resource Compiler Warning RW4003


SHIFT or CONTROL used without VIRTKEY
In an accelerator table resource, SHIFT or CONTROL require VIRTKEY. Because SHIFT and
CONTROL are indicated as flag bits in a VIRTKEY type accelerator, they cannot exist independent
from a VIRTKEY.
Resource Compiler Messages Page 24 of 24

Resource Compiler Warning RW4004


ASCII character not equivalent to virtual key code
A string literal was used for the virtual key code in a VIRTKEY type accelerator. This warning lets
you continue, but be aware that the accelerator keys generated may not match the string you
indicated. (VIRTKEYs use different key codes than ASCII accelerators.)

Return to Main Resource Compiler Messages Page

You might also like