This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: question about some terms


> There are some terms I cannot figure them out clearly.

There's a bit of fuzziness in these terms, but in general, you're pretty close.

> 1. relocatable file:
> ? ?(are they *.a and *.o files)

More accurately, .a files are archive (or static) libraries, whose
members are relocatable objects (.o files).

> 2. executable file
> ? ?(are they *.out files)

These are the output of a normal link (i.e., no -r option and no
-shared option). The ".out" extension is a bit ambiguous, as "a.out"
is both the traditional default output file name used by the Unix
assembler (usually a relocatable object, but traditionally the
assembler could also produce an executable file), and the default
output file name used by the linker. Normally an executable file has
been linked, has an entry point, and may or may not have dependencies
on shared objects (shared libraries).

> 3. shared object file
> ? ?(are they *.so files)

Yes. Also called shared libraries or dynamic-link libraries (DLLs).

> 4. Dynamically loaded libraries
> ? ?(what is the difference between 3 and 4)

In general, a dynamically-loaded library is a shared library that is
loaded during program execution via dlopen() (or equivalent), as
opposed to one that is listed as a dependency (directly or indirectly)
on the executable.

-cary


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]