eld Manual

Table Of Contents
Output Listings and Error Handling
eld Manual527255-009
6-40
Error Messages
Cause. eld is building a program or DLL, and the program or DLL makes a reference
to the symbol mentioned in the message, but eld was unable to find a copy of that
symbol, either in the program or DLL being built, or in any other DLL that was looked at
during the link. This might occur for many reasons, ranging from spelling errors in your
source code, or things that you still need to write that you do not yet have in your
source code, to problems with files that other people are supposed to provide to you,
which either they did not provide or you did not pass along for eld to use, or
“standard” things not set up correctly in your installation.
Effect. Warning (eld produces an output file, but it might not be what you intended).
Recovery. You don’t necessarily need to do anything. A program may run correctly,
even if it has unresolved references at link time. But, you may prefer that your link be
clean. In that case, you need to look at the names of the symbols that eld said it
couldn’t find, and see if they exist somewhere. The message also told you the name of
the input object file that had the reference to the symbol, and the name of a code or
data section within that object file where the reference occurred, and the offset of the
reference within that code or data section. That symbol may be in a DLL, for example,
that eld wasn’t using, so you need to supply those DLLs to eld. eld will print out
informational messages about all the DLLs that it used if you supply the -verbose
option. A symbol in a DLL also needs to be exported from that DLL for eld to find it. A
symbol might also be a member of an archive, but the archive needs to come later on
the command line than the reference to the symbol to guarantee that eld finds the
symbol in the archive. Depending on the situation, you may be able to use the -
unres_symbols option to specify whether eld should consider unresolved
references to be errors, warnings, or neither.
Cause. eld is building a program or DLL, and the program or DLL makes a reference
to the symbol mentioned in the message, but eld was unable to find a copy of that
symbol, either in the program or DLL being built, or in any other DLL that was looked at
during the link. This may occur for many reasons, ranging from spelling errors in your
source code, or things that
you still need to write that you don’t yet have in your source
code, to problems with files that other people are supposed to provide to you, which
either they didn’t provide or you didn’t pass along for eld to use, or “standard” things
not set up correctly in your installation.
Effect. Warning (eld produces an output file, but it might not be what you intended).
Recovery. You don’t necessarily need to do anything. A program may run correctly,
even if it has unresolved references at link time. But, you may prefer that your link be
clean. In that case, you need to look at the names of the symbols that eld said it
couldn’t find, and see if they exist somewhere. The message also told you the name of
the input object file that had the reference to the symbol. That symbol may be in a
DLL, for example, that eld wasn’t using, so you need to supply those DLLs to eld.
1254 <filename>: unresolved reference to <symbol name>.
1255 <filename>: unresolved reference to <symbol name>.