[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Library coding standards question

From: Tim Mooney
Subject: Re: Library coding standards question
Date: Sat, 23 Feb 2002 15:05:57 -0600 (CST)

In regard to: Library coding standards question, jks said (at 12:42am on...:

>"Choose a name prefix for the library, more than two characters long. All
>external function and variable names should start with this prefix. In
>addition, there should only be one of these [one name prefix, one external
>function, one variable name, or one of something else?] in any given library
>member [what is the meaning of "library member" in this context?]. This
>usually means putting each one [one what?] in a separate source file."

A "name prefix" just means that for C libraries, all your visible symbols
should start with some kind of prefix, i.e. your API shouldn't have
functions like


etc., but instead use


etc.  That's because of the problem with namespace pollution/collision in
C.  This isn't as much of an issue for libraries in some other languages,
but it's still worth considering.

A member is generally one object file.  The guidelines are saying that if
your `libjks.a' or `' or whatever has multiple members *and*
those members have multiple name prefixes (e.g. you have externally
visible symbols jkslib_read() and jkslib_write() to read and write your
new "JKS" video format, and you also have mpeg4_read() and mpeg4_write()
to handle MPEG4 video format), then the externally visible functions
should be in separate members:

        cc -o jks.o -c jks.c
        cc -o mpeg4.o -c mpeg4.c
        ar -crv libjks.a jks.o mpeg4.o
        nm -B libjks.a
    0x00000000000080  T  jkslib_read
    0x00000000000d90  T  jkslib_write
    0x000000000001f0  T mpeg4_read
    0x00000000000b40  T mpeg4_write

That doesn't illustrate the use of libtool, but it does illustrate what
the text you've quoted is talking about.

Tim Mooney                              address@hidden
Information Technology Services         (701) 231-1076 (Voice)
Room 242-J6, IACC Building              (701) 231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164

reply via email to

[Prev in Thread] Current Thread [Next in Thread]