CVF Rter
CVF Rter
Error Messages
Compaq Computer 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 Compaq or an authorized sublicensor.
Compaq, the COMPAQ logo, DEC, DIGITAL, VAX, and VMS are registered in the U.S. Patent and
Trademark Office.
DEC Fortran, OpenVMS, Tru64 UNIX, and VAX FORTRAN are trademarks of Compaq Computer
Corporation.
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.
IEEE is a registered trademark of the Institute of Electrical and Electronics Engineers, Inc.
IMSL and Visual Numerics are registered trademarks of Visual Numerics, Inc.
OpenMP and the OpenMP logo are trademarks of OpenMP Architecture Review Board.
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.
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.
When a severe error occurs for which no recovery method (such as ERR, END, or EOR) is specified:
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.
Related topics:
Visual Fortran Run-Time Errors Page 2 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.
Number Severity Level, Number, and Message Text; Condition Symbol and Explanation
The Compaq Fortran message catalog file was not found on this system. This error has
no condition symbol.
The Compaq Fortran message catalog file was not found on this system. This error has
no condition symbol.
The Compaq 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.
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.
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).
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.
FOR$IOS_BACERR. The Compaq Fortran RTL I/O system detected an error condition
during execution of a BACKSPACE statement.
l A Compaq 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
l Read or write more than one record with an ENCODE or DECODE statement.
l Write more records than existed.
FOR$IOS_CLOERR. An error condition was detected by the Compaq Fortran RTL I/O
system during execution of a CLOSE statement.
FOR$IOS_FILNOTFOU. A file with the specified name could not be found during an
open operation.
FOR$IOS_OPEFAI. An error was detected by the Compaq 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:
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.
Number Severity Level, Number, and Message Text; Condition Symbol and Explanation
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 Compaq Fortran RTL I/O system detected an error during execution of an
ENDFILE statement.
other operations on the logical unit may be performed between the READ and
REWRITE statements.
FOR$IOS_DELERR. An error condition was detected by the Compaq Fortran RTL I/O
system during execution of a DELETE statement.
FOR$IOS_FINERR. The Compaq Fortran RTL I/O system detected an error condition
during execution of a FIND statement.
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.
²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.
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.
Number Severity Level, Number, and Message Text; Condition Symbol and Explanation
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.
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
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:
¹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.
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.
Number Severity Level, Number, and Message Text; Condition Symbol and Explanation
152¹ severe (152): Unresolved contention for DEC Fortran RTL global resource
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 mo re
information.
This is an operating system error. See your operating system documentation for more
information.
This is an operating system error. See your operating system documentation for more
information.
This is an operating system error. See your operating system documentation for more
information.
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.
This message appears when /check:overflow was specified and an integer overflow
appears.
This is an operating system error. See your operating system documentation for more
information.
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.
This is an operating system error. See your operating system documentation for more
information.
This is an operating system error. See your operating system documentation for more
information.
This is an operating system error. See your operating system documentation for more
information.
deallocated
201¹ severe (201): Intel Pentium fdiv flaw detected, please update the processor
256 severe (256): Unformatted I/O to unit open for formatted transfers
257 severe (257): Formatted I/O to unit open for unformatted transfers
265 severe (265): operation requires sequential file organization and access
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.
Number Severity Level, Number, and Message Text; Condition Symbol and Explanation
FOR$IOS_F6096. An expression used to index an array was smaller than the lower
dimension bound or larger than the upper dimension bound.
FOR$IOS_F6098. The label assigned to the integer-variable name was not specified in
the label list of the assigned GOTO statement.
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.
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.
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.
Visual Fortran Run-Time Errors Page 21 of 48
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
opened with FORM=’FORMATTED’ and ACCESS=’SEQUENTIAL’.
553 severe (553): Terminal I/O not consistent with OPEN options
554 severe (554): Direct I/O not consistent with OPEN options
555 severe (555): Unformatted I/O not consistent with OPEN options
FOR$IOS_F6205. The A edit descriptor was not specified when a character data item
was read or written using formatted I/O.
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.
FOR$IOS_F6207. The I edit descriptor was not specified when an integer data item was
read or written using formatted I/O.
FOR$IOS_F6208. The L edit descriptor was not specified when a logical data item was
read or written using formatted I/O.
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’.
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.
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.
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.
Number Severity Level, Number, and Message Text; Condition Symbol and Explanation
FOR$IOS_F6311. An invalid number was specified as the record number for a direct-
access file.
FOR$IOS_F6315. A negative or zero record length was specified for a direct file.
FOR$IOS_F6318.
FOR$IOS_F6406.
Visual Fortran Run-Time Errors Page 26 of 48
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.
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.
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)
FOR$IOS_F6413. The program tried to connect an already connected file to a new unit.
FOR$IOS_F6414.
FOR$IOS_F6417. The program exceeded the number of open files the operating system
allows.
FOR$IOS_F6418. The program exceeded the number of units that can be connected at
one time. Units are connected with the OPEN statement.
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.
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.
FOR$IOS_F6424.
Visual Fortran Run-Time Errors Page 28 of 48
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.
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.
FOR$IOS_F6501. The program tried to read more data than the file contains.
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
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.
Number Severity Level, Number, and Message Text; Condition Symbol and Explanation
FOR$IOS_F6503. In list-directed input of the form i*c, an extra repeat field was used.
For example, consider the following:
Visual Fortran Run-Time Errors Page 29 of 48
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.
FOR$IOS_F6504. Some of the values in a list-directed input record were not numeric.
For example, consider the following:
READ(*,*) I, J
The preceding statement would cause this error if the input were: 123 ’abc’.
FOR$IOS_F6506. When using list-directed input, the real and imaginary components of
a complex number were not separated by a comma.
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.
FOR$IOS_F6510. The input field contained a character that was not hexadecimal.
FOR$IOS_F6512. The input record is not in the correct form for 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).
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.
FOR$IOS_F6700. The program ran out of heap space. The ALLOCATE statement
Visual Fortran Run-Time Errors Page 31 of 48
and various internal functions allocate memory from the heap. This error will be
generated when the last of the heap space is used up.
FOR$IOS_F6970. The specified decimal lengthD exceeds the specified total field width
W in an ES edit descriptor.
FOR$IOS_F6971. The specified decimal lengthD exceeds the specified total field width
W in an EN edit descriptor.
FOR$IOS_F6972.
WRITE(*, 100) I, J
100 FORMAT (I2, TL, I2)
The preceding code will cause this error because an integer is expected afterTL.
Negative integer values can appear only with theP edit descriptor. Integer values of 0
can appear only in the d and m fields of numeric edit descriptors.
FOR$IOS_F6983. One or more BN, BZ, S, SS, SP, T, TL, TR, /, $, :, or apostrophe
(’) edit descriptors had repeat counts associated with them.
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.
FOR$IOS_F6986. More than 16 sets of parentheses were nested inside the main level of
parentheses in a format.
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.
FOR$IOS_F6994.
If you want to transfer hexadecimal values, you must use the edit descriptor formZw
[.m], where w is the field width and m is the minimum number of digits that must be in
the field (including leading zeros).
FOR$IOS_F6996.
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.
In the following table, the first column lists error numbers returned to IOSTAT variables when an I/O
error is detected.
Visual Fortran Run-Time Errors Page 34 of 48
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.
Number Severity Level, Number, and Message Text; Condition Symbol and Explanation
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:
In this case, 1 <= dim <= n, where n is the number of dimensions in array.
663 severe (663): Out of range: substring starting position ’pos’ is less than 1
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
length ’len’
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
669 severe (669): SOURCE and PAD arguments to RESHAPE have different character
lengths
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_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
Visual Fortran Run-Time Errors Page 36 of 48
673 severe (673): SHAPE and ORDER arguments to RESHAPE have different sizes
(’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.
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:
In this case, 1 <= dim <= n + 1, where n is the number of dimensions in array.
FOR$IOS_F6723. Zero of any type (complex, real, or integer) cannot be raised to zero
power.
FOR$IOS_F6725.
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
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_F6729.
FOR$IOS_F6730.
689 severe (689): VALUES argument to DATE_AND_TIME is too small (’size’ elements)
This section describes in detail Visual Fortran run-time errors 690 through 719.
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.
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.
FOR$IOS_F6740. Zero of any type (real, complex, or integer) cannot be raised to zero
power.
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_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
702 severe (702): BOUNDARY argument to EOSHIFT has wrong LEN (’len1 instead of
len2’)
703 severe (703): BOUNDARY has LEN ’len’ instead of ’len’ to EOSHIFT
FOR$IOS_F6748.
FOR$IOS_F6749.
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.
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.
FOR$IOS_F6752. The I/O unit specified to be flushed to its associated file is not
connected to a file.
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
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.
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.
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.
Number Severity Level, Number, and Message Text; Condition Symbol and Explanation
721 severe (721): Attempt to DEALLOCATE an object which was not allocated
Dynamic memory allocation is limited by several factors, including swap file size and
Visual Fortran Run-Time Errors Page 43 of 48
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.
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.
FOR$IOS_F6773. There is not enough memory space to hold the automatic data object.
Visual Fortran Run-Time Errors Page 44 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.
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.
FOR$IOS_F6783.
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:
Note that RANDOM_SEED can be called with at most one argument at a time.
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:
Note that RANDOM_SEED can be called with at most one argument at a time.
FOR$IOS_F6786.
Visual Fortran Run-Time Errors Page 46 of 48
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.
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.
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.
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.
l ’NO’
l ’YES’ - the default
Visual Fortran Run-Time Errors Page 48 of 48
FOR$IOS_F6801.
FOR$IOS_F6802.
FOR$IOS_F6803.
FOR$IOS_F6804.
Linker Tools Messages Page 1 of 32
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 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.
The version of MSPDBxx.DLL available on your system does not match the version required by this
tool.
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.
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
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.
l Check that you’ve set your LINK_REPRO environment variable to an existing directory and not
Linker Tools Messages Page 6 of 32
in the object file. Either recompile with a smaller section alignment or increase the /ALIGN value.
l Rename the objects using unique names and rebuild the library.
l Link using the /PDB:NONE option.
blanks.
Coding Problems:
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.
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
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
Linker Tools Messages Page 15 of 32
/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:
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.
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.
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
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.
You can eliminate the TOC space by moving such data to the module where it is referenced.
However, if data is referenced in multiple modules, then the TOC space cannot be eliminated to save
space.
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.
Linker Tools Messages Page 18 of 32
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.
The given module-definition statement is not supported by this version of the linker tools. The tool
ignored the statement in the .DEF file.
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.
none 16
BYTES 16
SHORTS 8
LONGS 4
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.
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.
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 Messages Page 24 of 32
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.
greater than 0x400000. For more information on base addresses, see the /BASE linker option.
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
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 Messages Page 27 of 32
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.
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.
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.
A full link was required in order to recreate the incremental status (.ILK) file.
l The file was locked by another process. If reason was Permission denied, the browser in the
development environment might be using the file. Close the Browse window and repeat the
build.
l The disk was full.
l A hardware error occurred.
l The specified output file had the same name as an existing subdirectory.
l The TMP environment variable was not set to a valid drive and directory.
l The disk was full.
BSCMAKE did not recognize the given option and ignored it.
l The program was compiled or linked with an option (such as /FPi87) that required a
coprocessor, but the program was run on a machine that did not have a coprocessor installed.
l A format string for a printf or scanf function contained a floating-point format specification, and
the program did not contain any floating-point values or variables.
l The compiler minimizes a program’s size by loading floating-point support only when necessary.
The compiler cannot detect floating-point format specifications in format strings, so it does not
load the necessary floating-point routines.
l Use a floating-point argument to correspond to the floating-point format specification, or
perform a floating-point assignment elsewhere in the program. This causes floating-point
support to be loaded.
l In a mixed-language program, a C library was specified before a FORTRAN library when the
program was linked. Relink and specify the C library last.
l Increase the amount of virtual memory available to the program. Consider using the Control
Panel, System icon, Performance tab to increase your system’s virtual memory, reboot, and
C Run-Time Errors R6002 through R6025 Page 2 of 3
retry.
l Reduce the number and size of command-line arguments.
l Reduce the environment size by removing unnecessary variables.
If your program uses the compact, large, or huge memory model, this error may be avoided by using
LINK’s /CPARM:1 command-line option. This option causes unused near heap space to be allocated
to the far heap.
l The file does not exist. Check the spelling of the filename and path.
l The file was opened or deleted by another process.
l There was not enough space on disk.
l To put at least minimal debugging information into the executable file, link using the /DEBUG
option.
l To include full debugging information in an object file, compile or assemble using the /Zi or /Z7
option.
l To include minimal information and line numbers in an object file, compile or assemble using the
/Zd option.
l Extract the object from the library and link it to the program explicitly.
l Force LINK to include the object in the program by specifying the /INCLUDE option with a
symbol from the object.
l Change the source code so that code or data in filename is referenced either from an object file
that uses the library or from another module that is being linked from the library.
dependencies.
l The .PDB file does not exist. Check the spelling of the filename and path.
l The .PDB file was opened or deleted by another process.
CVPACK and LINK look for .PDB files in the following locations in this order:
1. Where the .EXE or .DLL resides (the absolute path written in the .OBJ file).
2. Where the .OBJ or .DLL is opened from.
You cannot specify a .PDB file’s name or location on the command line.
CVPACK took no action because the executable file has already been processed by this version of
CVPACK.
l The file does not exist. Check the spelling of the filename and path.
l The file does not have read permission.
l The file was opened or deleted by another process.
l There was not enough space on disk.
l The file does not exist. Check the spelling of the filename and path.
l The file does not have write permission.
CVTRES Messages CVT1100 through CVT4001 Page 2 of 2
Note: The sqrt function in the C run-time library and the FORTRAN intrinsic function SQRT do not
generate this error. The C sqrt function checks the argument before performing the operation and
returns an error value if the operand is negative. The FORTRAN SQRT function generates the Math
Error M6201.
Math Errors M6101 through M6205 (x86 only) Page 2 of 2
NMAKE Messages
The following topics cover NMAKE Error U1000 through Warning U4011:
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
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.
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
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.
ONE=$(TWO)
TWO=$(ONE)
l Newline character
l Semicolon (;), which can be followed by a command
l Number sign (#), which can be followed by a comment
The following topics cover NMAKE Error U2001 through Warning U4011:
Because the target was not specified in the .PRECIOUS list, NMAKE deleted the file.
The maximum number of modules has been exceeded. Restructure the merge procedure to include
more stages.
another profiled module, but the imported module is itself not being profiled, then the import table of
that imported module cannot be changed, and this error occurs. The solution is to include the
offending module in the profile.
Line profiling only: There was a problem with the executable file. Try relinking and rerunning PREP
Phase I. Check the EXE file with the debugger.
Because the current directory depends on the profiler rather than on the profiled program, all modules
might not be found. In most cases, this warning is not serious. However, if profiling leads to a GP
fault (or to incorrect behavior), it might be necessary to include the "unknown module" in the profile.
Profiler Errors PRF1005 through PRF4642 Page 7 of 8
The following topics cover Resource Compiler Errors RC1000 through RC1208:
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.
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.
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.
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.
It is not sufficient to end the first line with \n, the escape sequence for embedding a newline character
in a string constant.
expected ’defined(id)’
An identifier was expected after the left parenthesis following the specified preprocessing keyword.
#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.
The following topics cover Resource Compiler Warnings RC4000 through RC4413:
The type of specified file is not known to the Resource Compiler. It was compiled as an 8-bit ASCII
file.
#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.
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