Linking
The linkage editor link-edits specified object files to create one executable
file. Invoking the compiler with one of the invocation commands automatically
calls the linkage editor unless you specify one of the following compiler
options: -E, -P, -c, -S, -qsyntaxonly or -#.
- Input files
- Object files, unstripped executable files, and library files serve as
input to the linkage editor. Object files must have a suffix, for example, year.o. Static library file names have an .a suffix, for example, libold.a. Dynamic library file names have a .so suffix, for example, libold.so.
- Output files
- The linkage editor generates an executable file and
places it in your current directory. The default name for an executable file
is a.out. To name the executable file explicitly, use the -o file_name option with the compiler invocation command, where file_name is the name you want to give to the executable file. For example,
to compile myfile.c and generate an executable file called myfile, enter:
xlc myfile.c -o myfile
If you use the -qmkshrobj option to create a shared library, the shared object created will have a .so file name extension.
You can invoke the linkage editor explicitly
with the ld command. However, the compiler invocation
commands set several linkage-editor options, and link some standard files
into the executable output by default. In most cases, it is better to use
one of the compiler invocation commands to link-edit your object files.
Note:
When link-editing object files, do not use the -e option of the ld command. The default entry point of the executable output is __start. Changing this label with the -e flag can
cause erratic results.
Related information