views:

72

answers:

1

What are binary libraries? How to generate statistically linked binaries to libraries? What is the difference between libraries and binaries?

+2  A: 
  • A binary file is any file that contains at least some data consisting of sequences of bits that do not represent plain text (i.e., human-readable characters), i.e., data that is not meant to be interpreted through a common character set (such as ASCII). A bit (a contraction of the term binary digit) is the most basic unit of information in computing and communications, and every bit has a value of either zero or one. Binary files include image files, sound files, executable (i.e., runnable) programs and compressed data files. typically done by a linker.

  • In computer science, a library is a collection of subroutines or classes used to develop software. Libraries contain code and data that provide services to independent programs. This allows the sharing and changing of code and data in a modular fashion. Some executables are both standalone programs and libraries, but most libraries are not executables. Executables and libraries make references known as links to each other through the process known as linking, which is typically done by a linker.

    • static library, also known as an archive, consists of a set of routines which are copied into a target application by the compiler, linker, or binder, producing object files and a stand-alone executable file. This process, and the stand-alone executable file, are known as a static build of the target application. Actual addresses for jumps and other routine calls are stored in a relative or symbolic form which cannot be resolved until all code and libraries are assigned final static addresses.

    • In addition to identifying static and dynamic loading, computer scientists also often classify libraries according to how they are shared among programs. Dynamic libraries almost always offer some form of sharing, allowing the same library to be used by multiple programs at the same time. Static libraries, by definition, cannot be shared. The term "linker" comes from the process of copying procedures or subroutines which may come from "relocatable" libraries and adjusting or "linking" the machine address to the final locations of each module.

Various definitions have been done on the web. Just try to search some definitions according the language you use.

Nadir SOUALEM