orocreate-pkg: compilation error trying to use the Typekit

Hello,
I am in trouble using the orocreate-pkg, when I try to create my own type
with the typekit (I'm using typegen).
I named my project "interfaceOrocos".
The default example constructed is working well. If I add an <int> field,
it's still working. But when I try to add a <string> field in my structure,
I'm getting a compilation error. Depending on the documentation, it is said
that the RTT's typekit has built-in support for the C++ type <string>.

My file interfaceOrocos-types.hpp :

#include <vector>
#include <string>
#include <stdlib.h>
struct MyrobotData
{
std::vector<double> samples;
int foo;
std::string actionName;
};

Compilation error (partial track):
-------------------
[ 88%] Built target interfaceOrocos-transport-corba-gnulinux
[ 94%] Building CXX object
typekit/transports/mqueue/CMakeFiles/interfaceOrocos-transport-mqueue-gnulinux.dir/MyrobotData.cpp.o
In file included from /usr/include/boost/serialization/split_member.hpp:23,
from /usr/include/boost/serialization/nvp.hpp:33,
from /usr/include/boost/serialization/serialization.hpp:17,
from
/home/tgateau/SVN/robotis/supervision/interfaceOrocos/typekit/Types.hpp:20,
from
/home/tgateau/SVN/robotis/supervision/interfaceOrocos/typekit/transports/mqueue/MyrobotData.cpp:3:
/usr/include/boost/serialization/access.hpp: In static member function
‘static void boost::serialization::access::serialize(Archive&, T&, unsigned
int) [with Archive = RTT::mqueue::binary_data_iarchive, T =
std::basic_string<char, std::char_traits<char>, std::allocator<char> >]’:
...
...
/home/tgateau/SVN/robotis/supervision/interfaceOrocos/typekit/transports/mqueue/MyrobotData.cpp:13:
instantiated from here
/usr/include/boost/serialization/access.hpp:109: error: ‘struct
std::basic_string<char, std::char_traits<char>, std::allocator<char> >’ has
no member named ‘serialize’
make[2]: ***
[typekit/transports/mqueue/CMakeFiles/interfaceOrocos-transport-mqueue-gnulinux.dir/MyrobotData.cpp.o]
Erreur 1
make[1]: ***
[typekit/transports/mqueue/CMakeFiles/interfaceOrocos-transport-mqueue-gnulinux.dir/all]
Erreur 2
make: *** [all] Erreur 2
-------------------

(without the line 'std::string actionName;', the compilation is successful.

I have also two warning messages using 'make regen': (the second one was
present in the default configuration, when the application was compiling
well)
WARN: /std/string cannot be marshalled in the MQueue transport
WARN: /std/vector</double> cannot be marshalled in the MQueue transport

Did I do something wrong or am I missing something ?
Thibault.

orocreate-pkg: compilation error trying to use the Typekit

2011/4/11 Thibault Cake <thibault [dot] cake [..] ...>

> Hello,
> I am in trouble using the orocreate-pkg, when I try to create my own type
> with the typekit (I'm using typegen).
> I named my project "interfaceOrocos".
> The default example constructed is working well. If I add an <int> field,
> it's still working. But when I try to add a <string> field in my structure,
> I'm getting a compilation error. Depending on the documentation, it is said
> that the RTT's typekit has built-in support for the C++ type <string>.
>
> My file interfaceOrocos-types.hpp :
>
> #include <vector>
> #include <string>
> #include <stdlib.h>
> struct MyrobotData
> {
> std::vector<double> samples;
> int foo;
> std::string actionName;
> };
>
>
> Compilation error (partial track):
> -------------------
> [ 88%] Built target interfaceOrocos-transport-corba-gnulinux
> [ 94%] Building CXX object
> typekit/transports/mqueue/CMakeFiles/interfaceOrocos-transport-mqueue-gnulinux.dir/MyrobotData.cpp.o
> In file included from /usr/include/boost/serialization/split_member.hpp:23,
> from /usr/include/boost/serialization/nvp.hpp:33,
> from
> /usr/include/boost/serialization/serialization.hpp:17,
> from
> /home/tgateau/SVN/robotis/supervision/interfaceOrocos/typekit/Types.hpp:20,
> from
> /home/tgateau/SVN/robotis/supervision/interfaceOrocos/typekit/transports/mqueue/MyrobotData.cpp:3:
> /usr/include/boost/serialization/access.hpp: In static member function
> ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned
> int) [with Archive = RTT::mqueue::binary_data_iarchive, T =
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >]’:
> ...
> ...
> /home/tgateau/SVN/robotis/supervision/interfaceOrocos/typekit/transports/mqueue/MyrobotData.cpp:13:
> instantiated from here
> /usr/include/boost/serialization/access.hpp:109: error: ‘struct
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >’ has
> no member named ‘serialize’
> make[2]: ***
> [typekit/transports/mqueue/CMakeFiles/interfaceOrocos-transport-mqueue-gnulinux.dir/MyrobotData.cpp.o]
> Erreur 1
> make[1]: ***
> [typekit/transports/mqueue/CMakeFiles/interfaceOrocos-transport-mqueue-gnulinux.dir/all]
> Erreur 2
> make: *** [all] Erreur 2
> -------------------
>
>
>
> (without the line 'std::string actionName;', the compilation is successful.
>
>
> I have also two warning messages using 'make regen': (the second one was
> present in the default configuration, when the application was compiling
> well)
> WARN: /std/string cannot be marshalled in the MQueue transport
> WARN: /std/vector</double> cannot be marshalled in the MQueue transport
>
> Did I do something wrong or am I missing something ?
> Thibault.
>
>
If think you are facing a recently posted question :
"If you're not interested in building typekits, open the CMakeLists.txt and
disable the line that says "orocos_typegen_headers()"
The orocos macro's used to enabled this by default. By default it is
disabled however as of version 2.3.

Regards,

Steven"

>
>
>
>
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>
>

orocreate-pkg: compilation error trying to use the Typekit

At the contrary, I specifically want to use the typekit. When I disable the
line that says "orocos_typegen_headers()", my application is compiling well
indeed. But I need my type to be known by other orocos modules (For the
moment, in the deployer-gnulinux, I get an "undefined value" for my type).
Regards,
Thibault

2011/4/11 Willy Lambert <lambert [dot] willy [..] ...>

>
>
> 2011/4/11 Thibault Cake <thibault [dot] cake [..] ...>
>
>> Hello,
>> I am in trouble using the orocreate-pkg, when I try to create my own type
>> with the typekit (I'm using typegen).
>> I named my project "interfaceOrocos".
>> The default example constructed is working well. If I add an <int> field,
>> it's still working. But when I try to add a <string> field in my structure,
>> I'm getting a compilation error. Depending on the documentation, it is said
>> that the RTT's typekit has built-in support for the C++ type <string>.
>>
>> My file interfaceOrocos-types.hpp :
>>
>> #include <vector>
>> #include <string>
>> #include <stdlib.h>
>> struct MyrobotData
>> {
>> std::vector<double> samples;
>> int foo;
>> std::string actionName;
>> };
>>
>>
>> Compilation error (partial track):
>> -------------------
>> [ 88%] Built target interfaceOrocos-transport-corba-gnulinux
>> [ 94%] Building CXX object
>> typekit/transports/mqueue/CMakeFiles/interfaceOrocos-transport-mqueue-gnulinux.dir/MyrobotData.cpp.o
>> In file included from
>> /usr/include/boost/serialization/split_member.hpp:23,
>> from /usr/include/boost/serialization/nvp.hpp:33,
>> from
>> /usr/include/boost/serialization/serialization.hpp:17,
>> from
>> /home/tgateau/SVN/robotis/supervision/interfaceOrocos/typekit/Types.hpp:20,
>> from
>> /home/tgateau/SVN/robotis/supervision/interfaceOrocos/typekit/transports/mqueue/MyrobotData.cpp:3:
>> /usr/include/boost/serialization/access.hpp: In static member function
>> ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned
>> int) [with Archive = RTT::mqueue::binary_data_iarchive, T =
>> std::basic_string<char, std::char_traits<char>, std::allocator<char> >]’:
>> ...
>> ...
>> /home/tgateau/SVN/robotis/supervision/interfaceOrocos/typekit/transports/mqueue/MyrobotData.cpp:13:
>> instantiated from here
>> /usr/include/boost/serialization/access.hpp:109: error: ‘struct
>> std::basic_string<char, std::char_traits<char>, std::allocator<char> >’ has
>> no member named ‘serialize’
>> make[2]: ***
>> [typekit/transports/mqueue/CMakeFiles/interfaceOrocos-transport-mqueue-gnulinux.dir/MyrobotData.cpp.o]
>> Erreur 1
>> make[1]: ***
>> [typekit/transports/mqueue/CMakeFiles/interfaceOrocos-transport-mqueue-gnulinux.dir/all]
>> Erreur 2
>> make: *** [all] Erreur 2
>> -------------------
>>
>>
>>
>> (without the line 'std::string actionName;', the compilation is
>> successful.
>>
>>
>> I have also two warning messages using 'make regen': (the second one was
>> present in the default configuration, when the application was compiling
>> well)
>> WARN: /std/string cannot be marshalled in the MQueue transport
>> WARN: /std/vector</double> cannot be marshalled in the MQueue transport
>>
>> Did I do something wrong or am I missing something ?
>> Thibault.
>>
>>
> If think you are facing a recently posted question :
> "If you're not interested in building typekits, open the CMakeLists.txt and
> disable the line that says "orocos_typegen_headers()"
> The orocos macro's used to enabled this by default. By default it is
> disabled however as of version 2.3.
>
> Regards,
>
> Steven"
>
>
>
>
>
>>
>>
>>
>>
>> --
>> Orocos-Users mailing list
>> Orocos-Users [..] ...
>> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>>
>>
>