Linking problem under Orocos 2.4 with Xenomai

hi all,

I have the following error that I can't decode. I did really many things
that could introduce this problem :
_ switch to 2.4 (from 2.3)
_ use xenomai
_ has tried to compile for 64b and get back to 32b (so it may exists
configuration tricks that I forgot to switch back)

Any help is appreciated, as this text is really not speaking to me :)

Linking CXX shared library
../../../lib/orocos/xenomai/libarp_hml-xenomai.so
CMakeFiles/arp_hml.dir/can/CanOpenDispatcher.cpp.o: In function
`RTT::internal::CollectImpl<1, bool ()(bool&),
RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
std::basic_string<char, std::char_traits<char>, std::allocator<char> >)>
>::CollectImpl()':

CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25RemoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::CollectImpl<1,
bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
std::allocator<char> >)> >::CollectImpl()]+0x73): undefined reference to
`RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'

CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25RemoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::CollectImpl<1,
bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
std::allocator<char> >)> >::CollectImpl()]+0x126): undefined reference to
`RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
CMakeFiles/arp_hml.dir/can/CanOpenNode.cpp.o: In function
`addAttribute<double>':

/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
undefined reference to
`RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'

/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
undefined reference to
`RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
CMakeFiles/arp_hml.dir/can/CanOpenNode.cpp.o: In function
`addProperty<int>':
/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/PropertyBag.hpp:167:
undefined reference to
`RTT::internal::ReferenceDataSource<int>::ReferenceDataSource(int&)'
CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
`addAttribute<double>':

/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
undefined reference to
`RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'

/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
undefined reference to
`RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
`RTT::internal::create_sequence_impl<boost::mpl::v_mask<boost::mpl::vector2<bool,
bool&>, 1>, 1>::GetTypeInfo(int)':

/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'

/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'

/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'

/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
`RTT::internal::create_sequence_impl<boost::mpl::v_mask<boost::mpl::vector2<bool,
int>, 1>, 1>::GetTypeInfo(int)':

/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
undefined reference to `RTT::internal::DataSource<int>::GetTypeInfo()'
CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
`addProperty<double>':
/opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/PropertyBag.hpp:167:
undefined reference to
`RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
collect2: ld returned 1 exit status

Linking problem under Orocos 2.4 with Xenomai

2011/8/29 Willy Lambert <lambert [dot] willy [..] ...>

> hi all,
>
> I have the following error that I can't decode. I did really many things
> that could introduce this problem :
> _ switch to 2.4 (from 2.3)
> _ use xenomai
> _ has tried to compile for 64b and get back to 32b (so it may exists
> configuration tricks that I forgot to switch back)
>
> Any help is appreciated, as this text is really not speaking to me :)
>
> Linking CXX shared library
> ../../../lib/orocos/xenomai/libarp_hml-xenomai.so
> CMakeFiles/arp_hml.dir/can/CanOpenDispatcher.cpp.o: In function
> `RTT::internal::CollectImpl<1, bool ()(bool&),
> RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >)>
> >::CollectImpl()':
>
> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25RemoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::CollectImpl<1,
> bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
> ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >)> >::CollectImpl()]+0x73): undefined reference to
> `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
>
> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25RemoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::CollectImpl<1,
> bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
> ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >)> >::CollectImpl()]+0x126): undefined reference to
> `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
> CMakeFiles/arp_hml.dir/can/CanOpenNode.cpp.o: In function
> `addAttribute<double>':
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
> undefined reference to
> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
> undefined reference to
> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
> CMakeFiles/arp_hml.dir/can/CanOpenNode.cpp.o: In function
> `addProperty<int>':
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/PropertyBag.hpp:167:
> undefined reference to
> `RTT::internal::ReferenceDataSource<int>::ReferenceDataSource(int&)'
> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
> `addAttribute<double>':
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
> undefined reference to
> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
> undefined reference to
> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
> `RTT::internal::create_sequence_impl<boost::mpl::v_mask<boost::mpl::vector2<bool,
> bool&>, 1>, 1>::GetTypeInfo(int)':
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
> `RTT::internal::create_sequence_impl<boost::mpl::v_mask<boost::mpl::vector2<bool,
> int>, 1>, 1>::GetTypeInfo(int)':
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
> undefined reference to `RTT::internal::DataSource<int>::GetTypeInfo()'
> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
> `addProperty<double>':
>
> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/PropertyBag.hpp:167:
> undefined reference to
> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
> collect2: ld returned 1 exit status
>
>
may I bump this, I really have no idea

Linking problem under Orocos 2.4 with Xenomai

Hi Willy,

I'm back since last week, but I'm crawling through backlogs of all sorts :-)

You can/try to fix this by linking with the librtt-typekit-xenomai library,
which defines these symbols. Normally, you should only get these linking
errors if you included <rtt/typekit/Types.hpp>. Did you ?

Furthermore, in 2.4.x, the linking with this library should be
automatically, if you depend on rtt in your manifest.xml file. Is this a ros
build or non-ros orocos build or autoproj build ?

Peter

On Thu, Sep 1, 2011 at 5:26 PM, Willy Lambert <lambert [dot] willy [..] ...>wrote:

>
>
> 2011/8/29 Willy Lambert <lambert [dot] willy [..] ...>
>
>> hi all,
>>
>> I have the following error that I can't decode. I did really many things
>> that could introduce this problem :
>> _ switch to 2.4 (from 2.3)
>> _ use xenomai
>> _ has tried to compile for 64b and get back to 32b (so it may exists
>> configuration tricks that I forgot to switch back)
>>
>> Any help is appreciated, as this text is really not speaking to me :)
>>
>> Linking CXX shared library
>> ../../../lib/orocos/xenomai/libarp_hml-xenomai.so
>> CMakeFiles/arp_hml.dir/can/CanOpenDispatcher.cpp.o: In function
>> `RTT::internal::CollectImpl<1, bool ()(bool&),
>> RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
>> std::basic_string<char, std::char_traits<char>, std::allocator<char> >)>
>> >::CollectImpl()':
>>
>> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25RemoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::CollectImpl<1,
>> bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
>> ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
>> std::allocator<char> >)> >::CollectImpl()]+0x73): undefined reference to
>> `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
>>
>> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25RemoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::CollectImpl<1,
>> bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
>> ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
>> std::allocator<char> >)> >::CollectImpl()]+0x126): undefined reference to
>> `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
>> CMakeFiles/arp_hml.dir/can/CanOpenNode.cpp.o: In function
>> `addAttribute<double>':
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
>> undefined reference to
>> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
>> undefined reference to
>> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>> CMakeFiles/arp_hml.dir/can/CanOpenNode.cpp.o: In function
>> `addProperty<int>':
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/PropertyBag.hpp:167:
>> undefined reference to
>> `RTT::internal::ReferenceDataSource<int>::ReferenceDataSource(int&)'
>> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
>> `addAttribute<double>':
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
>> undefined reference to
>> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
>> undefined reference to
>> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
>> `RTT::internal::create_sequence_impl<boost::mpl::v_mask<boost::mpl::vector2<bool,
>> bool&>, 1>, 1>::GetTypeInfo(int)':
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
>> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
>> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
>> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
>> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
>> `RTT::internal::create_sequence_impl<boost::mpl::v_mask<boost::mpl::vector2<bool,
>> int>, 1>, 1>::GetTypeInfo(int)':
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
>> undefined reference to `RTT::internal::DataSource<int>::GetTypeInfo()'
>> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
>> `addProperty<double>':
>>
>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/PropertyBag.hpp:167:
>> undefined reference to
>> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>> collect2: ld returned 1 exit status
>>
>>
> may I bump this, I really have no idea
>
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>
>

Linking problem under Orocos 2.4 with Xenomai

2011/9/1 Peter Soetens <peter [..] ...>

> Hi Willy,
>
> I'm back since last week, but I'm crawling through backlogs of all sorts
> :-)
>

oh sorry, time is so long when you are not here ;p I hope holidays where
good

>
> You can/try to fix this by linking with the librtt-typekit-xenomai library,
> which defines these symbols. Normally, you should only get these linking
> errors if you included <rtt/typekit/Types.hpp>. Did you ?
>

I found old <ocl/Component.hpp> includes. Thoses should not be related to
this but the number of errors decreased. And yes I am using Types.hpp quite
everywhere because of this in the release letter of 2.4:

We have confirmed reports of compilation time regressions when using GCC. We
are looking into reducing them. You can speed-up compilation times of
components by including the 'Types.hpp' files of the typekits you are using
in data ports, properties or operations. For example:

#include <rtt/typekit/Types.hpp> // Speeds up compiling components
using regular C types

When I suppress this, I no more have some linking problems. So at least I am
no more stuck, thanks for this it was a real pain for my schedule.

> Furthermore, in 2.4.x, the linking with this library should be
> automatically, if you depend on rtt in your manifest.xml file. Is this a ros
> build or non-ros orocos build or autoproj build ?
>

It is a ROS build, I have rtt in "second" dependency, and I usually have
everything automatically added, but as I just switch to 2.4 so it is maybe
related.
Here are the few lines I add to my Cmake :
macro( add_orocos )
rosbuild_find_ros_package( rtt )
set( RTT_HINTS HINTS ${rtt_PACKAGE_PATH}/install )
find_package(OROCOS-RTT REQUIRED rtt-marshalling rtt-scripting
${RTT_HINTS})
include(${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DRTT_COMPONENT")
endmacro()

>
> Peter
>
> On Thu, Sep 1, 2011 at 5:26 PM, Willy Lambert <lambert [dot] willy [..] ...>wrote:
>
>>
>>
>> 2011/8/29 Willy Lambert <lambert [dot] willy [..] ...>
>>
>>> hi all,
>>>
>>> I have the following error that I can't decode. I did really many things
>>> that could introduce this problem :
>>> _ switch to 2.4 (from 2.3)
>>> _ use xenomai
>>> _ has tried to compile for 64b and get back to 32b (so it may exists
>>> configuration tricks that I forgot to switch back)
>>>
>>> Any help is appreciated, as this text is really not speaking to me :)
>>>
>>> Linking CXX shared library
>>> ../../../lib/orocos/xenomai/libarp_hml-xenomai.so
>>> CMakeFiles/arp_hml.dir/can/CanOpenDispatcher.cpp.o: In function
>>> `RTT::internal::CollectImpl<1, bool ()(bool&),
>>> RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
>>> std::basic_string<char, std::char_traits<char>, std::allocator<char> >)>
>>> >::CollectImpl()':
>>>
>>> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25RemoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::CollectImpl<1,
>>> bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
>>> ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >)> >::CollectImpl()]+0x73): undefined reference to
>>> `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
>>>
>>> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25RemoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::CollectImpl<1,
>>> bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
>>> ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
>>> std::allocator<char> >)> >::CollectImpl()]+0x126): undefined reference to
>>> `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
>>> CMakeFiles/arp_hml.dir/can/CanOpenNode.cpp.o: In function
>>> `addAttribute<double>':
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
>>> undefined reference to
>>> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
>>> undefined reference to
>>> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>>> CMakeFiles/arp_hml.dir/can/CanOpenNode.cpp.o: In function
>>> `addProperty<int>':
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/PropertyBag.hpp:167:
>>> undefined reference to
>>> `RTT::internal::ReferenceDataSource<int>::ReferenceDataSource(int&)'
>>> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
>>> `addAttribute<double>':
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
>>> undefined reference to
>>> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/ConfigurationInterface.hpp:102:
>>> undefined reference to
>>> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>>> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
>>> `RTT::internal::create_sequence_impl<boost::mpl::v_mask<boost::mpl::vector2<bool,
>>> bool&>, 1>, 1>::GetTypeInfo(int)':
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
>>> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
>>> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
>>> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
>>> undefined reference to `RTT::internal::DataSource<bool>::GetTypeInfo()'
>>> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
>>> `RTT::internal::create_sequence_impl<boost::mpl::v_mask<boost::mpl::vector2<bool,
>>> int>, 1>, 1>::GetTypeInfo(int)':
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/internal/CreateSequence.hpp:414:
>>> undefined reference to `RTT::internal::DataSource<int>::GetTypeInfo()'
>>> CMakeFiles/arp_hml.dir/can/CanOpenController.cpp.o: In function
>>> `addProperty<double>':
>>>
>>> /opt/ros/orocos_toolchain_ros/rtt/install/include/rtt/PropertyBag.hpp:167:
>>> undefined reference to
>>> `RTT::internal::ReferenceDataSource<double>::ReferenceDataSource(double&)'
>>> collect2: ld returned 1 exit status
>>>
>>>
>> may I bump this, I really have no idea
>>
>> --
>> Orocos-Users mailing list
>> Orocos-Users [..] ...
>> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>>
>>
>

Linking problem under Orocos 2.4 with Xenomai

On Fri, Sep 2, 2011 at 1:01 AM, Willy Lambert <lambert [dot] willy [..] ...>wrote:

>
>
> 2011/9/1 Peter Soetens <peter [..] ...>
>
>> Hi Willy,
>>
>> I'm back since last week, but I'm crawling through backlogs of all sorts
>> :-)
>>
>
>
> oh sorry, time is so long when you are not here ;p I hope holidays where
> good
>
>>
>> You can/try to fix this by linking with the librtt-typekit-xenomai
>> library, which defines these symbols. Normally, you should only get these
>> linking errors if you included <rtt/typekit/Types.hpp>. Did you ?
>>
>
> I found old <ocl/Component.hpp> includes. Thoses should not be related to
> this but the number of errors decreased. And yes I am using Types.hpp quite
> everywhere because of this in the release letter of 2.4:
>
> We have confirmed reports of compilation time regressions when using GCC.
> We are looking into reducing them. You can speed-up compilation times of
> components by including the 'Types.hpp' files of the typekits you are using
> in data ports, properties or operations. For example:
>
> #include <rtt/typekit/Types.hpp> // Speeds up compiling components using regular C types
>
>
You must put rtt as a dependency in your manifest file for every package
that includes this !

>
> When I suppress this, I no more have some linking problems. So at least I
> am no more stuck, thanks for this it was a real pain for my schedule.
>
>
>> Furthermore, in 2.4.x, the linking with this library should be
>> automatically, if you depend on rtt in your manifest.xml file. Is this a ros
>> build or non-ros orocos build or autoproj build ?
>>
>
> It is a ROS build, I have rtt in "second" dependency, and I usually have
> everything automatically added, but as I just switch to 2.4 so it is maybe
> related.
>

the automatic linking will only be done only if you put rtt in your
manifest. It won't link with dependencies 'further away'.

> Here are the few lines I add to my Cmake :
> macro( add_orocos )
> rosbuild_find_ros_package( rtt )
> set( RTT_HINTS HINTS ${rtt_PACKAGE_PATH}/install )
> find_package(OROCOS-RTT REQUIRED rtt-marshalling rtt-scripting
> ${RTT_HINTS})
> include(${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake)
> SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DRTT_COMPONENT")
> endmacro()
>
> I think the last line is not necessary if you use the orocos_component
macro.

Peter

Linking problem under Orocos 2.4 with Xenomai

2011/9/2 Peter Soetens <peter [..] ...>

> On Fri, Sep 2, 2011 at 1:01 AM, Willy Lambert <lambert [dot] willy [..] ...>wrote:
>
>>
>>
>> 2011/9/1 Peter Soetens <peter [..] ...>
>>
>>> Hi Willy,
>>>
>>> I'm back since last week, but I'm crawling through backlogs of all sorts
>>> :-)
>>>
>>
>>
>> oh sorry, time is so long when you are not here ;p I hope holidays where
>> good
>>
>>>
>>> You can/try to fix this by linking with the librtt-typekit-xenomai
>>> library, which defines these symbols. Normally, you should only get these
>>> linking errors if you included <rtt/typekit/Types.hpp>. Did you ?
>>>
>>
>> I found old <ocl/Component.hpp> includes. Thoses should not be related to
>> this but the number of errors decreased. And yes I am using Types.hpp quite
>> everywhere because of this in the release letter of 2.4:
>>
>> We have confirmed reports of compilation time regressions when using GCC.
>> We are looking into reducing them. You can speed-up compilation times of
>> components by including the 'Types.hpp' files of the typekits you are using
>> in data ports, properties or operations. For example:
>>
>> #include <rtt/typekit/Types.hpp> // Speeds up compiling components using regular C types
>>
>>
> You must put rtt as a dependency in your manifest file for every package
> that includes this !
>
>
>
>

>> When I suppress this, I no more have some linking problems. So at least I
>> am no more stuck, thanks for this it was a real pain for my schedule.
>>
>>
>>> Furthermore, in 2.4.x, the linking with this library should be
>>> automatically, if you depend on rtt in your manifest.xml file. Is this a ros
>>> build or non-ros orocos build or autoproj build ?
>>>
>>
>> It is a ROS build, I have rtt in "second" dependency, and I usually have
>> everything automatically added, but as I just switch to 2.4 so it is maybe
>> related.
>>
>
> the automatic linking will only be done only if you put rtt in your
> manifest. It won't link with dependencies 'further away'.
>

Ok, all my Orocos package depends on an "core" package that contains
TaskContexts inheritance, that's why I let this core depending on rtt. But I
don't mind putting rtt evrywhere.

I added rtt, and I am using the orocos_component macro for a multi component
library

ard@ard-host:/opt/ros/orocos_toolchain_ros/rtt/install/lib/orocos/xenomai/types$
rospack depends1 arp_hml
roscpp
rospy
arp_core
rosconsole
socket_can
can_festival
rtt
rtt_ros_integration_std_msgs
rtt_ros_integration_arp_core_msgs
std_msgs
sensor_msgs
std_srvs
tf
hokuyo_node

but the compilation still fail
Linking CXX shared library ../../../lib/orocos/xenomai/libarp_hml-xenomai.so
CMakeFiles/arp_hml.dir/can/CanOpenDispatcher.cpp.o: In function
`RTT::internal::CollectImpl<1, bool ()(bool&),
RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
std::basic_string<char, std::char_traits<char>, std::allocator<char> >)>
>::CollectImpl()':

CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25RemoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::CollectImpl<1,
bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
std::allocator<char> >)> >::CollectImpl()]+0x73): undefined reference to
`RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'

CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25RemoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::CollectImpl<1,
bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
std::allocator<char> >)> >::CollectImpl()]+0x126): undefined reference to
`RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
collect2: ld returned 1 exit status

>
>> Here are the few lines I add to my Cmake :
>> macro( add_orocos )
>> rosbuild_find_ros_package( rtt )
>> set( RTT_HINTS HINTS ${rtt_PACKAGE_PATH}/install )
>> find_package(OROCOS-RTT REQUIRED rtt-marshalling rtt-scripting
>> ${RTT_HINTS})
>> include(${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake)
>> SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DRTT_COMPONENT")
>> endmacro()
>>
>> I think the last line is not necessary if you use the orocos_component
> macro.
>
>
This is an old line that I copy paste from the time orocos macros where not
here (and BTW, thanks for thoses ^ ^), I tried without, it's OK.

> Peter
>
>

Linking problem under Orocos 2.4 with Xenomai

On Friday 02 September 2011 10:57:00 Willy Lambert wrote:
> 2011/9/2 Peter Soetens <peter [..] ...>
>
> > On Fri, Sep 2, 2011 at 1:01 AM, Willy Lambert
<lambert [dot] willy [..] ...>wrote:
> >> 2011/9/1 Peter Soetens <peter [..] ...>
...
> >
> > the automatic linking will only be done only if you put rtt in your
> > manifest. It won't link with dependencies 'further away'.
>
> Ok, all my Orocos package depends on an "core" package that contains
> TaskContexts inheritance, that's why I let this core depending on rtt. But
> I don't mind putting rtt evrywhere.
>
> I added rtt, and I am using the orocos_component macro for a multi
> component library
>
> ard@ard-host:/opt/ros/orocos_toolchain_ros/rtt/install/lib/orocos/xenomai/t
> ypes$ rospack depends1 arp_hml
> roscpp
> rospy
> arp_core
> rosconsole
> socket_can
> can_festival
> rtt
> rtt_ros_integration_std_msgs
> rtt_ros_integration_arp_core_msgs
> std_msgs
> sensor_msgs
> std_srvs
> tf
> hokuyo_node
>
>
>
> but the compilation still fail
> Linking CXX shared library
> ../../../lib/orocos/xenomai/libarp_hml-xenomai.so
> CMakeFiles/arp_hml.dir/can/CanOpenDispatcher.cpp.o: In function
> `RTT::internal::CollectImpl<1, bool ()(bool&),
> RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >)>
>
> >::CollectImpl()':
> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25R
> emoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::Colle
> ctImpl<1, bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
> ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >)> >::CollectImpl()]+0x73): undefined reference to
> `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
>
> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25R
> emoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::Colle
> ctImpl<1, bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
> ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >)> >::CollectImpl()]+0x126): undefined reference to
> `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
> collect2: ld returned 1 exit status

Can you try the patch in attachment on RTT ? Recompile rtt + your app.

If you use git: git am 0001-typekit....
if you don't use git: patch -p1 < 0001-typekit...

Peter

PS: thanks for reporting this, issues like these can be real show-stoppers for
new users...

Linking problem under Orocos 2.4 with Xenomai

2011/9/2 Peter Soetens <peter [..] ...>

> On Friday 02 September 2011 10:57:00 Willy Lambert wrote:
> > 2011/9/2 Peter Soetens <peter [..] ...>
> >
> > > On Fri, Sep 2, 2011 at 1:01 AM, Willy Lambert
> <lambert [dot] willy [..] ...>wrote:
> > >> 2011/9/1 Peter Soetens <peter [..] ...>
> ...
> > >
> > > the automatic linking will only be done only if you put rtt in your
> > > manifest. It won't link with dependencies 'further away'.
> >
> > Ok, all my Orocos package depends on an "core" package that contains
> > TaskContexts inheritance, that's why I let this core depending on rtt.
> But
> > I don't mind putting rtt evrywhere.
> >
> > I added rtt, and I am using the orocos_component macro for a multi
> > component library
> >
> > ard@ard-host
> :/opt/ros/orocos_toolchain_ros/rtt/install/lib/orocos/xenomai/t
> > ypes$ rospack depends1 arp_hml
> > roscpp
> > rospy
> > arp_core
> > rosconsole
> > socket_can
> > can_festival
> > rtt
> > rtt_ros_integration_std_msgs
> > rtt_ros_integration_arp_core_msgs
> > std_msgs
> > sensor_msgs
> > std_srvs
> > tf
> > hokuyo_node
> >
> >
> >
> > but the compilation still fail
> > Linking CXX shared library
> > ../../../lib/orocos/xenomai/libarp_hml-xenomai.so
> > CMakeFiles/arp_hml.dir/can/CanOpenDispatcher.cpp.o: In function
> > `RTT::internal::CollectImpl<1, bool ()(bool&),
> > RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
> > std::basic_string<char, std::char_traits<char>, std::allocator<char> >)>
> >
> > >::CollectImpl()':
> >
> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25R
> >
> emoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::Colle
> > ctImpl<1, bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
> > ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
> > std::allocator<char> >)> >::CollectImpl()]+0x73): undefined reference to
> > `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
> >
> >
> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25R
> >
> emoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::Colle
> > ctImpl<1, bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
> > ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
> > std::allocator<char> >)> >::CollectImpl()]+0x126): undefined reference to
> > `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
> > collect2: ld returned 1 exit status
>
> Can you try the patch in attachment on RTT ?

of course

> Recompile rtt + your app.
>

oh no :( Is this a punishment ? ;)

>

If you use git: git am 0001-typekit....
> if you don't use git: patch -p1 < 0001-typekit...
>
> Peter
>
> PS: thanks for reporting this, issues like these can be real show-stoppers
> for
> new users...
>

Yep, I must admit that the error log is very hard to decode (not to say
impossible), and this is a real pain, cause even with time and patience, I
can't find my error alone nor at least an idea of the error. It just says
that something is wrong in the abyssa of rtt :(

Linking problem under Orocos 2.4 with Xenomai

2011/9/2 Willy Lambert <lambert [dot] willy [..] ...>

>
>
> 2011/9/2 Peter Soetens <peter [..] ...>
>
>> On Friday 02 September 2011 10:57:00 Willy Lambert wrote:
>> > 2011/9/2 Peter Soetens <peter [..] ...>
>> >
>> > > On Fri, Sep 2, 2011 at 1:01 AM, Willy Lambert
>> <lambert [dot] willy [..] ...>wrote:
>> > >> 2011/9/1 Peter Soetens <peter [..] ...>
>> ...
>> > >
>> > > the automatic linking will only be done only if you put rtt in your
>> > > manifest. It won't link with dependencies 'further away'.
>> >
>> > Ok, all my Orocos package depends on an "core" package that contains
>> > TaskContexts inheritance, that's why I let this core depending on rtt.
>> But
>> > I don't mind putting rtt evrywhere.
>> >
>> > I added rtt, and I am using the orocos_component macro for a multi
>> > component library
>> >
>> > ard@ard-host
>> :/opt/ros/orocos_toolchain_ros/rtt/install/lib/orocos/xenomai/t
>> > ypes$ rospack depends1 arp_hml
>> > roscpp
>> > rospy
>> > arp_core
>> > rosconsole
>> > socket_can
>> > can_festival
>> > rtt
>> > rtt_ros_integration_std_msgs
>> > rtt_ros_integration_arp_core_msgs
>> > std_msgs
>> > sensor_msgs
>> > std_srvs
>> > tf
>> > hokuyo_node
>> >
>> >
>> >
>> > but the compilation still fail
>> > Linking CXX shared library
>> > ../../../lib/orocos/xenomai/libarp_hml-xenomai.so
>> > CMakeFiles/arp_hml.dir/can/CanOpenDispatcher.cpp.o: In function
>> > `RTT::internal::CollectImpl<1, bool ()(bool&),
>> > RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
>> > std::basic_string<char, std::char_traits<char>, std::allocator<char> >)>
>> >
>> > >::CollectImpl()':
>> >
>> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25R
>> >
>> emoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::Colle
>> > ctImpl<1, bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
>> > ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> >)> >::CollectImpl()]+0x73): undefined reference to
>> > `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
>> >
>> >
>> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_25R
>> >
>> emoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::Colle
>> > ctImpl<1, bool ()(bool&), RTT::internal::RemoteOperationCallerImpl<bool
>> > ()(RTT::LoggerLevel, std::basic_string<char, std::char_traits<char>,
>> > std::allocator<char> >)> >::CollectImpl()]+0x126): undefined reference
>> to
>> > `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
>> > collect2: ld returned 1 exit status
>>
>> Can you try the patch in attachment on RTT ?
>
>
> of course
>

The patch didn't succeed to apply.I tried the change manually but Rtt
scripting failed to link. Did you had time to test it, or was it on-the-fly
? If yes please send me the patcher Types.inc file so that I am sure the
"manual-patch" is ok.

I don't have time to check this further since monday :(

>
>> Recompile rtt + your app.
>>
>
> oh no :( Is this a punishment ? ;)
>
>

Did you had time to try it ? I have an error when compiling rtt. See the
attached the "VERBOSE=2" make result.

I found this ligne strange :
In file included from
/opt/ros/orocos_toolchain_ros/rtt/rtt/typekit/RealTimeTypekitTypes.cpp:42:
/opt/ros/orocos_toolchain_ros/rtt/rtt/typekit/Types.inc:9: error: explicit
instantiation of ‘struct RTT::internal::ReferenceDataSource<bool>’ before
definition of template

>
>
> If you use git: git am 0001-typekit....
>> if you don't use git: patch -p1 < 0001-typekit...
>>
>> Peter
>>
>> PS: thanks for reporting this, issues like these can be real show-stoppers
>> for
>> new users...
>>
>
> Yep, I must admit that the error log is very hard to decode (not to say
> impossible), and this is a real pain, cause even with time and patience, I
> can't find my error alone nor at least an idea of the error. It just says
> that something is wrong in the abyssa of rtt :(
>
>
>

Linking problem under Orocos 2.4 with Xenomai

On Friday 02 September 2011 18:27:22 Willy Lambert wrote:
> 2011/9/2 Willy Lambert <lambert [dot] willy [..] ...>
>
> > 2011/9/2 Peter Soetens <peter [..] ...>
> >
> >> On Friday 02 September 2011 10:57:00 Willy Lambert wrote:
> >> > 2011/9/2 Peter Soetens <peter [..] ...>
> >> >
> >> > > On Fri, Sep 2, 2011 at 1:01 AM, Willy Lambert
> >>
> >> <lambert [dot] willy [..] ...>wrote:
> >> > >> 2011/9/1 Peter Soetens <peter [..] ...>
> >>
> >> ...
> >>
> >> > > the automatic linking will only be done only if you put rtt in your
> >> > > manifest. It won't link with dependencies 'further away'.
> >> >
> >> > Ok, all my Orocos package depends on an "core" package that contains
> >> > TaskContexts inheritance, that's why I let this core depending on rtt.
> >>
> >> But
> >>
> >> > I don't mind putting rtt evrywhere.
> >> >
> >> > I added rtt, and I am using the orocos_component macro for a multi
> >> > component library
> >> >
> >> > ard@ard-host
> >> :
> >> :/opt/ros/orocos_toolchain_ros/rtt/install/lib/orocos/xenomai/t
> >> :
> >> > ypes$ rospack depends1 arp_hml
> >> > roscpp
> >> > rospy
> >> > arp_core
> >> > rosconsole
> >> > socket_can
> >> > can_festival
> >> > rtt
> >> > rtt_ros_integration_std_msgs
> >> > rtt_ros_integration_arp_core_msgs
> >> > std_msgs
> >> > sensor_msgs
> >> > std_srvs
> >> > tf
> >> > hokuyo_node
> >> >
> >> >
> >> >
> >> > but the compilation still fail
> >> > Linking CXX shared library
> >> > ../../../lib/orocos/xenomai/libarp_hml-xenomai.so
> >> > CMakeFiles/arp_hml.dir/can/CanOpenDispatcher.cpp.o: In function
> >> > `RTT::internal::CollectImpl<1, bool ()(bool&),
> >> > RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
> >> > std::basic_string<char, std::char_traits<char>, std::allocator<char>
> >> > >)>
> >> >
> >> > >::CollectImpl()':
> >> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_
> >> 25R
> >>
> >> emoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::Co
> >> lle
> >>
> >> > ctImpl<1, bool ()(bool&),
> >> > RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
> >> > std::basic_string<char, std::char_traits<char>, std::allocator<char>
> >> > >)> >::CollectImpl()]+0x73): undefined reference to
> >> > `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)
> >> > '
> >>
> >> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_
> >> 25R
> >>
> >> emoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::Co
> >> lle
> >>
> >> > ctImpl<1, bool ()(bool&),
> >> > RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
> >> > std::basic_string<char, std::char_traits<char>, std::allocator<char>
> >> > >)> >::CollectImpl()]+0x126): undefined reference
> >>
> >> to
> >>
> >> > `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
> >> >
> >> > collect2: ld returned 1 exit status
> >>
> >> Can you try the patch in attachment on RTT ?
> >
> > of course
>
> The patch didn't succeed to apply.I tried the change manually but Rtt
> scripting failed to link. Did you had time to test it, or was it on-the-fly
> ? If yes please send me the patcher Types.inc file so that I am sure the
> "manual-patch" is ok.

The patch was against master but it should have appled on toolchain-2.4 too...
Did you accidentally apply it to 2.3 ?

>
> I don't have time to check this further since monday :(
>
> >> Recompile rtt + your app.
> >
> > oh no :( Is this a punishment ? ;)
>
> Did you had time to try it ? I have an error when compiling rtt. See the
> attached the "VERBOSE=2" make result.

Couldn't test it right there. You also need to #include
"../internal/DataSources.hpp". A fixed/tested version in attachment.

Peter

Linking problem under Orocos 2.4 with Xenomai

2011/9/6 Peter Soetens <peter [..] ...>

> On Friday 02 September 2011 18:27:22 Willy Lambert wrote:
> > 2011/9/2 Willy Lambert <lambert [dot] willy [..] ...>
> >
> > > 2011/9/2 Peter Soetens <peter [..] ...>
> > >
> > >> On Friday 02 September 2011 10:57:00 Willy Lambert wrote:
> > >> > 2011/9/2 Peter Soetens <peter [..] ...>
> > >> >
> > >> > > On Fri, Sep 2, 2011 at 1:01 AM, Willy Lambert
> > >>
> > >> <lambert [dot] willy [..] ...>wrote:
> > >> > >> 2011/9/1 Peter Soetens <peter [..] ...>
> > >>
> > >> ...
> > >>
> > >> > > the automatic linking will only be done only if you put rtt in
> your
> > >> > > manifest. It won't link with dependencies 'further away'.
> > >> >
> > >> > Ok, all my Orocos package depends on an "core" package that contains
> > >> > TaskContexts inheritance, that's why I let this core depending on
> rtt.
> > >>
> > >> But
> > >>
> > >> > I don't mind putting rtt evrywhere.
> > >> >
> > >> > I added rtt, and I am using the orocos_component macro for a multi
> > >> > component library
> > >> >
> > >> > ard@ard-host
> > >> :
> > >> :/opt/ros/orocos_toolchain_ros/rtt/install/lib/orocos/xenomai/t
> > >> :
> > >> > ypes$ rospack depends1 arp_hml
> > >> > roscpp
> > >> > rospy
> > >> > arp_core
> > >> > rosconsole
> > >> > socket_can
> > >> > can_festival
> > >> > rtt
> > >> > rtt_ros_integration_std_msgs
> > >> > rtt_ros_integration_arp_core_msgs
> > >> > std_msgs
> > >> > sensor_msgs
> > >> > std_srvs
> > >> > tf
> > >> > hokuyo_node
> > >> >
> > >> >
> > >> >
> > >> > but the compilation still fail
> > >> > Linking CXX shared library
> > >> > ../../../lib/orocos/xenomai/libarp_hml-xenomai.so
> > >> > CMakeFiles/arp_hml.dir/can/CanOpenDispatcher.cpp.o: In function
> > >> > `RTT::internal::CollectImpl<1, bool ()(bool&),
> > >> > RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
> > >> > std::basic_string<char, std::char_traits<char>, std::allocator<char>
> > >> > >)>
> > >> >
> > >> > >::CollectImpl()':
> > >>
> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_
> > >> 25R
> > >>
> > >>
> emoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::Co
> > >> lle
> > >>
> > >> > ctImpl<1, bool ()(bool&),
> > >> > RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
> > >> > std::basic_string<char, std::char_traits<char>, std::allocator<char>
> > >> > >)> >::CollectImpl()]+0x73): undefined reference to
> > >> >
> `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)
> > >> > '
> > >>
> > >>
> CanOpenDispatcher.cpp:(.text._ZN3RTT8internal11CollectImplILi1EFbRbENS0_
> > >> 25R
> > >>
> > >>
> emoteOperationCallerImplIFbNS_11LoggerLevelESsEEEEC2Ev[RTT::internal::Co
> > >> lle
> > >>
> > >> > ctImpl<1, bool ()(bool&),
> > >> > RTT::internal::RemoteOperationCallerImpl<bool ()(RTT::LoggerLevel,
> > >> > std::basic_string<char, std::char_traits<char>, std::allocator<char>
> > >> > >)> >::CollectImpl()]+0x126): undefined reference
> > >>
> > >> to
> > >>
> > >> >
> `RTT::internal::ReferenceDataSource<bool>::ReferenceDataSource(bool&)'
> > >> >
> > >> > collect2: ld returned 1 exit status
> > >>
> > >> Can you try the patch in attachment on RTT ?
> > >
> > > of course
> >
> > The patch didn't succeed to apply.I tried the change manually but Rtt
> > scripting failed to link. Did you had time to test it, or was it
> on-the-fly
> > ? If yes please send me the patcher Types.inc file so that I am sure the
> > "manual-patch" is ok.
>
> The patch was against master but it should have appled on toolchain-2.4
> too...
> Did you accidentally apply it to 2.3 ?
>
> >
> > I don't have time to check this further since monday :(
> >
> > >> Recompile rtt + your app.
> > >
> > > oh no :( Is this a punishment ? ;)
> >
> > Did you had time to try it ? I have an error when compiling rtt. See the
> > attached the "VERBOSE=2" make result.
>
> Couldn't test it right there.

No problem with this, it was just to be sure the problem was not on my own

> You also need to #include
> "../internal/DataSources.hpp". A fixed/tested version in attachment.
>
>
It's ok !

I am sorry not to being able to correct anything and just requiring patches
but this one was tricky

> Peter
>
>