Content deleted Content added
Undid revision 1107808339 by 2804:7F0:B1C0:9E07:B8F3:84DC:3C5D:AB05 (talk) |
|||
Line 8:
== Overview ==
Computer programs typically are composed of several parts or modules; these parts/modules do not need to be contained within a single [[object file]], and in such cases refer to each other by means of [[debug symbol|symbols]] as addresses into other modules, which are mapped into memory addresses when linked for execution.
While the process of linking is meant to ultimately combine these independent parts, there are many good reasons to develop those separately at the [[Source code|source]]-level. Among these reasons are the ease of organizing several smaller pieces over a [[Monolithic codebase|monolithic]] whole and the ability to better define the purpose and responsibilities of each individual piece, which is essential for managing complexity and increasing long-term maintainability in [[software architecture]].
Typically, an object file can contain three kinds of symbols:
* defined "external" symbols, sometimes called "public" or "entry" symbols, which allow it to be called by other modules,
|