linker error when building ocl 1.10.2
Submitted by vri on Tue, 2010-04-20 14:26 |
I have built and installed orocos-rtt 1.10.3 succesfully. Now I would like to build and install orocos-ocl 1.10.2. I get a linker error when building helloworld and the deployer: liborocos-rtt-gnulinux.so: undefined reference to RTT::TinyDemarshaller::TinyDemarshaller
Indeed TinyDemarshaller has not been compiled during rtt build, because xerces was found and exceptions are allowed and hence CPFDemarshaller was compiled only (as specified in the CMakeLists.txt).
I tried to understand how the deployer depends on TinyDemarshaller, but was not able to do so easily. What to do to get a working deployer? Please advise.
Thanks in advance, Theo.
linker error when building ocl 1.10.2
On Tue, Apr 20, 2010 at 16:26, <t [dot] j [dot] a [dot] devries [..] ...> wrote:
> I have built and installed orocos-rtt 1.10.3 succesfully.
> Now I would like to build and install orocos-ocl 1.10.2.
> I get a linker error when building helloworld and the deployer:
> liborocos-rtt-gnulinux.so: undefined reference to RTT::TinyDemarshaller::TinyDemarshaller
>
> Indeed TinyDemarshaller has not been compiled during rtt build, because xerces was found and exceptions are allowed and hence CPFDemarshaller was compiled only (as specified in the CMakeLists.txt).
>
> I tried to understand how the deployer depends on TinyDemarshaller, but was not able to do so easily. What to do to get a working deployer? Please advise.
Strange. Since the undefined ref is in rtt, this means some rtt code
is depending on this class, and not OCL code. Could you show the
output of
nm -C liborocos-rtt-gnulinux.so |grep TinyDemarshaller
and ldd liborocos-ocl-common-gnulinux.so ?
Or you're linking to the wrong library/including the wrong headers, or
there's a bug in the cmake / macro logic. Does the error go away when
you disable xerces (by uninstalling the xerces-dev packages and doing
a fresh cmake configuration...)
Peter
linker error when building ocl 1.10.2
Ok, your suggestions helped me to understand the situation.
I installed ocl immediately after the upgrade of rtt to 1.10.3
I guess the linker was still getting the old rtt somehow; I should have run ldconfig?
Anyway, after a brand new start this evening, the installation of ocl went smoothly.
Sorry to have bothered you, still learning every day...
Cheers, Theo.
> I have built and installed orocos-rtt 1.10.3 succesfully.
> Now I would like to build and install orocos-ocl 1.10.2.
> I get a linker error when building helloworld and the deployer:
> liborocos-rtt-gnulinux.so: undefined reference to RTT::TinyDemarshaller::TinyDemarshaller
>
> Indeed TinyDemarshaller has not been compiled during rtt build, because xerces was found and exceptions are allowed and hence CPFDemarshaller was compiled only (as specified in the CMakeLists.txt).
>
> I tried to understand how the deployer depends on TinyDemarshaller, but was not able to do so easily. What to do to get a working deployer? Please advise.
Strange. Since the undefined ref is in rtt, this means some rtt code
is depending on this class, and not OCL code. Could you show the
output of
nm -C liborocos-rtt-gnulinux.so |grep TinyDemarshaller
and ldd liborocos-ocl-common-gnulinux.so ?
Or you're linking to the wrong library/including the wrong headers, or
there's a bug in the cmake / macro logic. Does the error go away when
you disable xerces (by uninstalling the xerces-dev packages and doing
a fresh cmake configuration...)
Peter
Re: linker error when building ocl 1.10.2
Ok, your suggestions helped me to understand the situation. I installed ocl immediately after the upgrade of rtt to 1.10.3 I guess the linker was still getting the old rtt somehow; I should have run ldconfig? Anyway, after a brand new start this evening, the installation of ocl went smoothly.
Sorry to have bothered you, still learning every day...
Cheers, Theo.
> I tried to understand how the deployer depends on TinyDemarshaller, but was not able to do so easily. What to do to get a working deployer? Please advise.
Strange. Since the undefined ref is in rtt, this means some rtt code is depending on this class, and not OCL code. Could you show the output of nm -C liborocos-rtt-gnulinux.so |grep TinyDemarshaller
and ldd liborocos-ocl-common-gnulinux.so ?
Or you're linking to the wrong library/including the wrong headers, or there's a bug in the cmake / macro logic. Does the error go away when you disable xerces (by uninstalling the xerces-dev packages and doing a fresh cmake configuration...)
Peter