undefined symbol: ORBit_skel_class_register

View: New views
6 Messages — Rating Filter:   Alert me  

undefined symbol: ORBit_skel_class_register

by Michael G. :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,
 
I install orbit2 on a linux machine , and try to play around the echo example from the ORBit Beginners Documentation v1.6. (http://www.gnome.org/projects/ORBit2/documentation.html)
 
The compilation is fine, but when I run the echo-server according to the instruction, it gives error like:

./echo-server: relocation error: ./echo-server: undefined symbol: ORBit_skel_class_register
 
 
I am new to orbit2, and don't know where to look for help. Can anyone provide some help ?
 
Thanks a lot!
 
Michael

Re: undefined symbol: ORBit_skel_class_register

by Michael G. :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


By the way, on the system, it looks like ORBit2.6 is installed.

>rpm -q -a | grep ORBit2
ORBit2-2.6.0-2
>

But the version I installed is ORBit2-2.13.1.

The problem may be caused by the installed ORBit2, but I don't know how to invoke my built ORBit2-2.13.1.  Any idea how to use my new compiled ORBit2 ?



Thanks.

Michael

Re: undefined symbol: ORBit_skel_class_register

by Georg Steffers :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Am 03.02.2006 13:26:18 schrieb(en) Michael G. (sent by Nabble.com):

> By the way, on the system, it looks like ORBit2.6 is installed.
>
> >rpm -q -a | grep ORBit2
> ORBit2-2.6.0-2
> >
>
> But the version I installed is ORBit2-2.13.1.
>
> The problem may be caused by the installed ORBit2, but I don't know
> how to invoke my built ORBit2-2.13.1.  Any idea how to use my new
> compiled ORBit2 ?

Well, i am relatively new to ORBit2 too. But perhaps i have an idea  
what might happen to you. It looks like ORBit2-2.6.0 was installed  
already on your system as you installed the 2.13.1 version. Most likely  
the 2.6.0 is under /usr and your 2.13.1 is now under /usr/local.
Now i guess that your idl is compiled with the idl compiler of one  
version and your ORBit2 and your binary is than in turn linked to the  
other lib of ORBit2. I guess (but its really only a guess) that the idl  
compiler of 2.6.0 and 2.13.1 produce no compatible source.

So as a suggestion i would try to use the already installed version of  
your ORBit because it might be used by some software already, and  
remove the 2.13.1. Or check that in any case the correct idl-compiler  
is used with the correct ORBit2 lib.

All this is just guessing, as i am new to ORBit2 too.


Greetings

    Georg
_______________________________________________
orbit-list mailing list
orbit-list@...
http://mail.gnome.org/mailman/listinfo/orbit-list

Re: undefined symbol: ORBit_skel_class_register

by Michael G. :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Thanks for reply.

This is the output when I type "make" to compile the program.

"
/home/mwgong/orbit2/bin/orbit-idl-2 echo.idl
orbit-idl-2 2.13.1 compiling
  mode, hide preprocessor errors, passes: stubs skels common headers

gcc -pthread -DORBIT2=1 -I/home/mwgong/glib2_8_5/include/glib-2.0 -I/home/mwgong/glib2_8_5/lib/glib-2.0/include -I/home/mwgong/orbit2/include/orbit-2.0     -c -o echo-client.o echo-client.c
gcc -pthread -DORBIT2=1 -I/home/mwgong/glib2_8_5/include/glib-2.0 -I/home/mwgong/glib2_8_5/lib/glib-2.0/include -I/home/mwgong/orbit2/include/orbit-2.0     -c -o echo-stubs.o echo-stubs.c
gcc -pthread -DORBIT2=1 -I/home/mwgong/glib2_8_5/include/glib-2.0 -I/home/mwgong/glib2_8_5/lib/glib-2.0/include -I/home/mwgong/orbit2/include/orbit-2.0     -c -o echo-common.o echo-common.c
gcc -pthread -DORBIT2=1 -I/home/mwgong/glib2_8_5/include/glib-2.0 -I/home/mwgong/glib2_8_5/lib/glib-2.0/include -I/home/mwgong/orbit2/include/orbit-2.0     -c -o examples-toolkit.o examples-toolkit.c
gcc -pthread -L/home/mwgong/glib2_8_5/lib -L/home/mwgong/orbit2/lib -lORBitCosNaming-2 -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0    echo-client.o echo-stubs.o echo-common.o examples-toolkit.o   -o echo-client
gcc -pthread -DORBIT2=1 -I/home/mwgong/glib2_8_5/include/glib-2.0 -I/home/mwgong/glib2_8_5/lib/glib-2.0/include -I/home/mwgong/orbit2/include/orbit-2.0     -c -o echo-server.o echo-server.c
gcc -pthread -DORBIT2=1 -I/home/mwgong/glib2_8_5/include/glib-2.0 -I/home/mwgong/glib2_8_5/lib/glib-2.0/include -I/home/mwgong/orbit2/include/orbit-2.0     -c -o echo-skels.o echo-skels.c
gcc -pthread -DORBIT2=1 -I/home/mwgong/glib2_8_5/include/glib-2.0 -I/home/mwgong/glib2_8_5/lib/glib-2.0/include -I/home/mwgong/orbit2/include/orbit-2.0     -c -o echo-skelimpl.o echo-skelimpl.c
gcc -pthread -L/home/mwgong/glib2_8_5/lib -L/home/mwgong/orbit2/lib -lORBitCosNaming-2 -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0    echo-server.o echo-skels.o echo-common.o examples-toolkit.o echo-skelimpl.o   -o echo-server
"

which I think I always use the idl compiler and orbit2 lib under /home/mwgong/orbit2/ directory.

Therefore, I think the problem is when the "echo-server" executable runs, it , somehows, uses the ORB2-2.6 library ??

My general purpose is to compile ORBit2 on Red Hat, and tries to use it to see whether it is usable. Then I will do some development work for ORBit2.

Any idea ?

Thanks again.

Michael



Re: undefined symbol: ORBit_skel_class_register

by Georg Steffers :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Am 03.02.2006 17:29:35 schrieb(en) Michael G. (sent by Nabble.com):

>
> Hi,
>
> Thanks for reply.
>
> This is the output when I type "make" to compile the program.
>
> "
> /home/mwgong/orbit2/bin/orbit-idl-2 echo.idl
> orbit-idl-2 2.13.1 compiling
>   mode, hide preprocessor errors, passes: stubs skels common headers
>
> gcc -pthread -DORBIT2=1 -I/home/mwgong/glib2_8_5/include/glib-2.0
> -I/home/mwgong/glib2_8_5/lib/glib-2.0/include
> -I/home/mwgong/orbit2/include/orbit-2.0     -c -o echo-client.o
> echo-client.c
--snip--
> gcc -pthread -L/home/mwgong/glib2_8_5/lib -L/home/mwgong/orbit2/lib
> -lORBitCosNaming-2 -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0
> -lglib-2.0    echo-server.o echo-skels.o echo-common.o
> examples-toolkit.o echo-skelimpl.o   -o echo-server
> "
>
> which I think I always use the idl compiler and orbit2 lib under
> /home/mwgong/orbit2/ directory.

Yes, looks like it does.

> Therefore, I think the problem is when the "echo-server" executable
> runs, it , somehows, uses the ORB2-2.6 library ??

well, that could be checked real simple. Try ldd echo-server.
I add a tar gz of the echo client and server as i have wrote it,  
including autobuild stuff....(i hope its ok to send attachments to this  
list, alse please tell me and take my apology for it please, i will not  
do it again then.) Well, those sources build without any problem here.
Sorry, the comments in my source are translated to german...

> My general purpose is to compile ORBit2 on Red Hat, and tries to use
> it to see whether it is usable. Then I will do some development work
> for ORBit2.

I cannot say much to Red Hat, but i actually plan to use ORBit2 as a  
backbone for a project that should run under a lot of unixes and  
windows and for that i tested the actual cvs under my SuSE and with  
MinGW and i can say for sure ORBit2 is usable...well, i think it must  
be usable as the complete actual GNOME is build upon it. :-)

Greets
    Georg


_______________________________________________
orbit-list mailing list
orbit-list@...
http://mail.gnome.org/mailman/listinfo/orbit-list

echo.tar.gz (14K) Download Attachment

Re: undefined symbol: ORBit_skel_class_register

by Michael G. :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi, all,

Thanks for help from "Patrick Ohly" and "Georg Steffers".

I take Georg's suggestion to use "ldd" checking the shared library used by "echo-server". The output is:

>ldd echo-server

libORBitCosNaming-2.so.0 => /usr/lib/libORBitCosNaming-2.so.0 (0x40021000)
libORBit-2.so.0 => /usr/lib/libORBit-2.so.0 (0x40027000)
libm.so.6 => /lib/tls/libm.so.6 (0x40069000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x4008b000)
libdl.so.2 => /lib/libdl.so.2 (0x4008f000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x40093000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x40098000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40103000)
libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
liblinc.so.1 => /usr/lib/liblinc.so.1 (0x40111000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x40119000)
libpopt.so.0 => /usr/lib/libpopt.so.0 (0x4014e000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
>

which means echo-server uses the shared library from system's ORBit.


Then I set LD_LIBRARY_PATH as following:

>export LD_LIBRARY_PATH=/home/mwgong/orbit2/lib/
>ldd echo-server

libORBitCosNaming-2.so.0 => /home/mwgong/orbit2/lib/libORBitCosNaming-2.so.0 (0x40017000)
libORBit-2.so.0 => /home/mwgong/orbit2/lib/libORBit-2.so.0 (0x4001b000)
libm.so.6 => /lib/tls/libm.so.6 (0x40076000)
libgmodule-2.0.so.0 => /home/mwgong/orbit2/lib/libgmodule-2.0.so.0 (0x40098000)
libdl.so.2 => /lib/libdl.so.2 (0x4009c000)
libgthread-2.0.so.0 => /home/mwgong/orbit2/lib/libgthread-2.0.so.0 (0x400a0000)
libglib-2.0.so.0 => /home/mwgong/orbit2/lib/libglib-2.0.so.0 (0x400a4000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40122000)
libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
libgobject-2.0.so.0 => /home/mwgong/glib2_8_5/lib/libgobject-2.0.so.0 (0x40130000)
libpopt.so.0 => /usr/lib/libpopt.so.0 (0x40161000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
>

Then I can run the echo-server and echo-client programs. And it works as expected.


In conclusion, I set LD_LIBRARY_PATH variable to ORBit library I just built, and the "relocation error" disappears.

Thanks a lot.

Michael