3.2.6 Linker Error Messages
If the linker detects any errors while linking object mod-
ules, it displays messages indicating the cause and severity of
the error. If any error or fatal error conditions occur (er-
rors with severities of E or F), the linker does not produce an
image file.
The messages produced by the linker are descriptive, and
you do not usually need additional information to determine
the specific error. Some common errors that occur during
linking are as follows:
.
An object module has compilation errors.
This error occurs when you attempt to link a module
that has warnings or errors during compilation. You
can usually link compiled modules for which the com-
piler generated messages, but you should verify that the
modules will actually produce the output you expect.
.
The input file has a file type other than .OBJ and no file
type was specified on the command line.
If you do not specify a file type, the linker assumes the
file has a file type of .OBJ by default. If the file is not an
object file and you do not identify it with the appropriate
file type, the linker signals an error message and does not
produce an image file.
.
You tried to link a nonexistent module.
The linker signals an error message if you misspell a
module name on the command line or if the compilation
contains fatal diagnostics.
.
A reference to a symbol name remains unresolved.
An error occurs when you omit required module or li-
brary names from the command line and the linker
cannot locate the definition for a specified global sym-
bol reference. For example, a main program module
OCEAN.OBJ calls the subprograms located in object
modules REEF.OBJ, SHELLS.OBJ, and SEAWEED.OBJ.
However, the following LINK command does not refer-
ence the object module SEAWEED.OBJ:
$ LINK OCEAN, REEF, SHELLS
This example produces the following error messages:
%LINK-W-NUDFSYMS, 1 undefined symbol
%LINK-I-UDFSYMS, SEAWEED
%LINK-W-USEUNDEF, module "OCEAN" references undefined symbol "SEAWEED"
%LINK-W-DIAGISUED, completed but with diagnostics
If an error occurs when you link modules, you can often
correct the error by reentering the command string and
specifying the correct modules or libraries.
See the OpenVMS System Messages and Recovery Procedures
Reference Manual for a complete list of linker messages.