문제

I am currently stuck with some code I successfully compiled into a .so file. When I try to link my library to some code if fails with the following statement:

undefined symbol: _ZrSRKN5CORBA3AnyERPN3RTT5corba4Math7MatrixdE

The only useful information I can get is that there is something with an object or a function that uses the following types: "CORBA::Any" (a regular corba type) and "RTT::corba::Math::Matrixd" (a type which is defined using one hh file and two cc files).

I would be interested in knowing where exactly in my code that symbol is generated and why it can't be found. I am suspecting that it represents a function defined in one of my cc files so here is how I compiled the whole thing:

g++ -I{CORBA includes} main.cpp one.cc two.cc -L{CORBA libraries}

What debugging process should I follow?

도움이 되었습니까?

해결책

In a Unix environment c++filt would be available on your system, this is how you would use it to demangle a function name:

c++filt _ZrSRKN5CORBA3AnyERPN3RTT5corba4Math7MatrixdE

I just used c++filtjs since it supports both g++ and msvc++, it came back with this:

operator>>=(CORBA::Any const&, RTT::corba::Math::Matrixd*&)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top