I would advise to put -ljingjing after main.cpp: g++ -o test.exe -L/usr/lib -L/home/test test.cpp -ljingjing ---- Lev Assinovsky Aelita Software Corporation (now is a part of Quest Software) O&S InTrust Framework Division, Team Leader ICQ# 165072909 > -----Original Message----- > From: Ramin NIkaeen [mailto:Rnikaeen@xxxxxxxxxxxx] > Sent: Wednesday, April 21, 2004 7:00 PM > To: gcc-help@xxxxxxxxxxx > Subject: simple linking question > > > > Friends, > > I am having linking problems with user-generated libraries on > my Redhat 7.2 > using gcc-3.3. > > To demonstrate the problem, I created the following simple example: > > /* > -------------------------------------------------------------- > -------------------------------------------------------------- > FILE: /home/test/jingjing.hpp > -------------------------------------------------------------- > -------------------------------------------------------------- */ > > #ifndef JINGJING_H > #define JINGJING_H > > void jingjing(); > > #endif > > /* > -------------------------------------------------------------- > -------------------------------------------------------------- > FILE: /home/test/jingjing.cpp > -------------------------------------------------------------- > -------------------------------------------------------------- */ > #include "jingjing.hpp" > #include <stdio.h> > > void jingjing() > { > fprintf(stderr, "jingjing invoked!\n"); > } > > /* > -------------------------------------------------------------- > -------------------------------------------------------------- > FILE: test.cpp > -------------------------------------------------------------- > -------------------------------------------------------------- */ > #include "jingjing.hpp" > > int main() > { > > jingjing(); > > return 0; > } > > -------------------------------------------------------------- > ----------------------------------------------------------------- > compilation and linking > -------------------------------------------------------------- > ----------------------------------------------------------------- > /home/test>g++ -g -O2 -c jingjing.cpp -o jingjing.o > /home/test>ar cru libjingjing.a jingjing.o > /home/test>ranlib libjingjing.a > /home/test>chmod 755 *.o *.a > /home/test>g++ -o test.exe -L/usr/lib -L/home/test > -ljingjing test.cpp > > At the linking stage, when I execute the last command shown > on the last line (g++ -o test.exe ....), > I get the following error: > -------------------------------------------------------------- > ----------------------------------------------------------------- > /tmp/ccuw3cNo.o: In function `main': > /tmp/ccuw3cNo.o(.text+0x11): undefined reference to `jingjing()' > collect2: ld returned 1 exit status > -------------------------------------------------------------- > ----------------------------------------------------------------- > > when I try > /home/test>g++ jingjing.o test.cpp > it generates the executable properly. > > but when I try > /home/test>g++ libjingjing.a test.cpp > I get the same error. > > Can someone tell me what is wrong?! > > > thanks so much > > ramin > > > >