Re: relocation error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



i have indeed found that the problem comes from a library that is use.

I create a very small class : 

in toto.h : 

class Toto
  {
    int x;

  public:
    Toto(int i);
  };

in toto.cpp :

#include "toto.h"

  Toto::Toto(int i)
  {
    x = i;
  }
in test.cpp : 

#include "../src/toto.h"

int main ()
{
  Toto tt(2);
  return 0;
}

i link toto.cpp in my_lib.so

i compile test.cpp with : 

g++ bin/libavisynth.so -L/home/torri/local/lib -lstlport_gcc
-L/home/torri/local/lib -lboost_thread-gcc-mt-1_31 -Wall -O2 -o bin/test
../../test/test.cpp

when i exec ./bin/test, i have:

./bin/test: relocation error: ./bin/test: undefined symbol: _ZN4TotoC1Ei

There's no problem if i link directly with toto.so and not my_lib.so
There's no problem if there's no parameters in the constructor
all the libs have been compiled with the same compiler (g++ 3.3.1)
nm ./bin/my_lib.so |grep _ZN4TotoC1Ei returns 001e8950 T _ZN4TotoC1Ei

afaik, gdb or valgrind have not helped me much.

i'm completely lost. Why this small class could not be used ?

Vincent TORRI


On Mon, 19 Jul 2004, Eljay Love-Jensen wrote:

> Hi Vincent,
> 
> It appears that this is not defined at link time:
> avs::text::Font::Font(_STL::basic_string<char, _STL::char_traits<char>, 
> _STL::allocator<char> > const&, int)
> 
> Check your build process to make sure the source file which contains that 
> routine is defined, and included in the compile, and being linked in.
> 
> HTH,
> --Eljay
> 
> 


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux