simple linking question

Lev Assinovsky LAssinovsky@algorithm.aelita.com
Wed Apr 21 15:50:00 GMT 2004


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@goldline.net]
> Sent: Wednesday, April 21, 2004 7:00 PM
> To: gcc-help@gcc.gnu.org
> 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
> 
> 
> 
> 



More information about the Gcc-help mailing list