Thanks for the tip and trying Erik. =) I'm already using ar to create my static libraries. My problem is that I'm currently writing/creating a library, call it C. In this library, C, I use functions provided by library A. This means that if I want to use C in a program, I'll have to link both C and A to it! This is not very logical for the user who just want C! Alternativly, when I create the C library, I could archive A toghether with it. I.e. creating a library containing both A+C and just call it C. This way the user/program doesn't have to know about A. But, the question here is: What if the user/program itself uses both A and C? Library A will be "linked twice", once in A and once in C. I don't think this is a problem (with double defined symbols), but won't the executable code be quite large? Especially if A is big? Or will the linker just link a minimal set of object files needed? My question in this post is actually: What is the common way to handle/create static libraries which uses other libraries? Thanks for reading this post. Don't know if it makes sense! =) /Bo ----- Original Message ----- From: "Erik Christiansen" <erik@xxxxxxxxxxxxx> To: "Bo Do" <bodo@xxxxxxxx> Cc: <gcc-help@xxxxxxxxxxx> Sent: Tuesday, November 18, 2003 12:14 AM Subject: Re: How handle static libraries? > On Mon, Nov 17, 2003 at 10:17:41AM +0100, Bo Do wrote: > > My question is, I have a library C which needs/uses library A. Can I > > compile/archive C in some way so that when I want to use C in a > > program, I just include C.h and link in C? > > From: man ar; > > The GNU ar program creates, modifies, and extracts from > archives. An archive is a single file holding a collec > tion of other files in a structure that makes it possible > to retrieve the original individual files (called members > of the archive). > > ... > > ar is considered a binary utility because archives of this > sort are most often used as libraries holding commonly > needed subroutines. > > ... > > Haven't used it myself, but there should be examples of its use in the > makefiles for gcc, etc. (I've seen "ar" commands whiz by, and they > seemed to be doing roughly what you intend, as far as a fleeting glimpse > can tell.) > > At least, it's worth a look. > > Erik >