old-www/HOWTO/Program-Library-HOWTO/index.html

313 lines
4.3 KiB
HTML

<HTML
><HEAD
><TITLE
>Program Library HOWTO</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="NEXT"
TITLE="Introduction"
HREF="introduction.html"></HEAD
><BODY
CLASS="ARTICLE"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="ARTICLE"
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="AEN2"
></A
>Program Library HOWTO</H1
><H3
CLASS="AUTHOR"
><A
NAME="AEN4"
>David A. Wheeler</A
></H3
><P
CLASS="PUBDATE"
>version 1.20, 11 April 2003<BR></P
><DIV
><DIV
CLASS="ABSTRACT"
><A
NAME="AEN10"
></A
><P
></P
><P
>This HOWTO for programmers
discusses how to create and use program libraries on Linux.
This includes static libraries, shared libraries, and
dynamically loaded libraries.</P
><P
></P
></DIV
></DIV
><HR></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>1. <A
HREF="introduction.html"
>Introduction</A
></DT
><DT
>2. <A
HREF="static-libraries.html"
>Static Libraries</A
></DT
><DT
>3. <A
HREF="shared-libraries.html"
>Shared Libraries</A
></DT
><DD
><DL
><DT
>3.1. <A
HREF="shared-libraries.html#AEN46"
>Conventions</A
></DT
><DT
>3.2. <A
HREF="shared-libraries.html#AEN70"
>How Libraries are Used</A
></DT
><DT
>3.3. <A
HREF="shared-libraries.html#AEN77"
>Environment Variables</A
></DT
><DT
>3.4. <A
HREF="shared-libraries.html#AEN95"
>Creating a Shared Library</A
></DT
><DT
>3.5. <A
HREF="shared-libraries.html#AEN115"
>Installing and Using a Shared Library</A
></DT
><DT
>3.6. <A
HREF="shared-libraries.html#AEN135"
>Incompatible Libraries</A
></DT
></DL
></DD
><DT
>4. <A
HREF="dl-libraries.html"
>Dynamically Loaded (DL) Libraries</A
></DT
><DD
><DL
><DT
>4.1. <A
HREF="dl-libraries.html#DLOPEN"
>dlopen()</A
></DT
><DT
>4.2. <A
HREF="dl-libraries.html#DLERROR"
>dlerror()</A
></DT
><DT
>4.3. <A
HREF="dl-libraries.html#DLSYM"
>dlsym()</A
></DT
><DT
>4.4. <A
HREF="dl-libraries.html#DLCLOSE"
>dlclose()</A
></DT
><DT
>4.5. <A
HREF="dl-libraries.html#DL-LIBRARY-EXAMPLE"
>DL Library Example</A
></DT
></DL
></DD
><DT
>5. <A
HREF="miscellaneous.html"
>Miscellaneous</A
></DT
><DD
><DL
><DT
>5.1. <A
HREF="miscellaneous.html#NM"
>nm command</A
></DT
><DT
>5.2. <A
HREF="miscellaneous.html#INIT-AND-CLEANUP"
>Library constructor and destructor functions</A
></DT
><DT
>5.3. <A
HREF="miscellaneous.html#SHARED-SCRIPTS"
>Shared Libraries Can Be Scripts</A
></DT
><DT
>5.4. <A
HREF="miscellaneous.html#VERSION-SCRIPTS"
>Symbol Versioning and Version Scripts</A
></DT
><DT
>5.5. <A
HREF="miscellaneous.html#GNU-LIBTOOL"
>GNU libtool</A
></DT
><DT
>5.6. <A
HREF="miscellaneous.html#REMOVING-SYMBOLS"
>Removing symbols for space</A
></DT
><DT
>5.7. <A
HREF="miscellaneous.html#SMALL-EXECUTABLES"
>Extremely small executables</A
></DT
><DT
>5.8. <A
HREF="miscellaneous.html#CPP-VS-C"
>C++ vs. C</A
></DT
><DT
>5.9. <A
HREF="miscellaneous.html#SPEEDING-CPP-INIT"
>Speeding up C++ initialization</A
></DT
><DT
>5.10. <A
HREF="miscellaneous.html#LSB"
>Linux Standard Base (LSB)</A
></DT
></DL
></DD
><DT
>6. <A
HREF="more-examples.html"
>More Examples</A
></DT
><DD
><DL
><DT
>6.1. <A
HREF="more-examples.html#AEN280"
>File libhello.c</A
></DT
><DT
>6.2. <A
HREF="more-examples.html#AEN284"
>File libhello.h</A
></DT
><DT
>6.3. <A
HREF="more-examples.html#AEN288"
>File demo_use.c</A
></DT
><DT
>6.4. <A
HREF="more-examples.html#AEN292"
>File script_static</A
></DT
><DT
>6.5. <A
HREF="more-examples.html#AEN296"
>File script_shared</A
></DT
><DT
>6.6. <A
HREF="more-examples.html#AEN300"
>File demo_dynamic.c</A
></DT
><DT
>6.7. <A
HREF="more-examples.html#AEN304"
>File script_dynamic</A
></DT
></DL
></DD
><DT
>7. <A
HREF="info-sources.html"
>Other Information Sources</A
></DT
><DT
>8. <A
HREF="copyright.html"
>Copyright and License</A
></DT
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="introduction.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Introduction</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>