This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Newbie: libProblem.a


--- Bobak Csaba <h531649@sirius.cab.u-szeged.hu> wrote:
> Hi all!
> 
> After searching the archives I have to ask this:
> How do I compile my prg of two libs and an executable if one of the libs
> calls functions from the other one?
> Simplified case:
> 
> a.c:
> ...
> int foo_a(int x)
> {
>  return x+1;
> }
> ...
> 
> b.c:
> ...
> extern foo_a(int);
> ...
> int foo_b(int y)
> {
>  return foo_a(y-1);
> }
> ...
> 
> main.c:
> ...
> extern foo_b(int);
> ...
> cout<<foo_b(3);
> ...
> 
> What I tried:
> gcc -c a.c
> ar cq liba.a a.o
> ranlib liba.a
> gcc -c b.c
> ar cq libb.a b.o
> ranlib libb.a
> gcc -o main main.c -L. -la -lb
> 
> The last command gave an 'undefined' with foo_a
> What did I do wrong?
> 

You ordered you libs incorrectly.  Since b calls functions in a then you need
to `gcc -o main main.c -L. -lb -la'.


=====
---
   Earnie Boyd: <mailto:earnie_boyd@yahoo.com>
            __Cygwin: POSIX on Windows__
Cygwin Newbies: <http://www.freeyellow.com/members5/gw32/index.html>
           __Minimalist GNU for Windows__
  Mingw32 List: <http://www.egroups.com/group/mingw32/>
    Mingw Home: <http://www.mingw.org/>

__________________________________________________
Do You Yahoo!?
Send instant messages & get email alerts with Yahoo! Messenger.
http://im.yahoo.com/

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]