Direct Invocation
When you invoke the link-editor directly, you have to supply every
object file and library required to create the intended output. The
link-editor makes no assumptions about the object modules or
libraries that you meant to use in creating the output. For example,
the following command instructs the link-editor to create a dynamic
executable that is named a.out
using only the
input file test.o
.
$ ld test.o
Typically, an executable requires specialized startup code and exit processing code. This code can be language or operating system specific, and is usually provided through files supplied by the compiler drivers.
Additionally, you can also supply your own initialization code and termination code. This code must be encapsulated and be labeled correctly for the code to be correctly recognized and made available to the runtime linker. This encapsulation and labeling can also be provided through files supplied by the compiler drivers.
When creating a dynamic object,
you should use a compiler driver to invoke the
link-editor. Direct invocation of the link-editor is recommended
only when creating intermediate relocatable objects when using the
-r
option.