simple linking question
Ramin NIkaeen
Rnikaeen@goldline.net
Wed Apr 21 14:59:00 GMT 2004
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