Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><code>.so</code> files are <strong>dynamic libraries</strong>. The suffix stands for "shared object", because all the applications that are linked with the library use the same file, rather than making a copy in the resulting executable.</p> <p><code>.a</code> files are <strong>static libraries</strong>. The suffix stands for "archive", because they're actually just an archive (made with the <code>ar</code> command -- a predecessor of <code>tar</code> that's now just used for making libraries) of the original .o object files.</p> <p><code>.la</code> files are <strong>text files used by the GNU "libtools" package</strong> to describe the files that make up the corresponding library. You can find more information about them in this question: <a href="https://stackoverflow.com/questions/1238035/what-is-libtools-la-file-for">What are libtool&#39;s .la file for?</a></p> <p>Static and dynamic libraries each have pros and cons.</p> <p>Static pro: The user always uses the version of the library that you've tested with your application, so there shouldn't be any surprising compatibility problems.</p> <p>Static con: If a problem is fixed in a library, you need to redistribute your application to take advantage of it. However, unless it's a library that users are likely to update on their own, you'd might need to do this anyway.</p> <p>Dynamic pro: Your process's memory footprint is smaller, because the memory used for the library is amortized among all the processes using the library.</p> <p>Dynamic pro: Libraries can be loaded on demand at run time; this is good for plugins, so you don't have to choose the plugins to be used when compiling and installing the software. New plugins can be added on the fly.</p> <p>Dynamic libraries are especially useful for system libraries, like <code>libc</code>. These libraries often need to include code that's dependent on the specific OS and version, because kernel interfaces have changed. If you link a program with a static system library, it will only run on the version of the OS that this library version was written for. But if you use a dynamic library, it will automatically pick up the library that's installed on the system you run on.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload