Open Ryanf55 opened 7 months ago
Hi @Ryanf55,
This is because Fast DDS Gen v3 generates code using Fast CDR v2 API by default, but Vulcanexus is still distributing Fast CDR v1 (as ROS 2 does). Try this command:
fastddsgen -typeros2 -cdr both BasicTypes.idl -example CMake # -cdr v1 would also work
In case you're interested, we are in the process of upgrading Fast CDR to v2 for Jazzy in:
Thanks. Do you think if there was a version argument to find_package, this could be prevented at configure time rather than build time?
Thanks. Do you think if there was a version argument to find_package, this could be prevented at configure time rather than build time?
That's actually a very good point, we could do something like:
-cdr v1
-> find_package Fast CDR v1
-cdr v2
-> find_package Fast CDR v2
-cdr both
-> find_package minimum Fast CDR v1
Bug Report
OS: Ubuntu 22 Installation Type: apt, with
vulcanexus-humble-fastddsgen
. I want to usefastddsgen
on the IDL file generated by a standard ROS humble installation.Steps to reproduce
module rosidl_generator_tests { module msg { struct BasicTypes { boolean bool_value;
}; };
fastddsgen -typeros2 BasicTypes.idl -example CMake
Logs
Root cause
It might be finding the wrong version of fastcdr. It locates this one:
On my system, there's a ton of fastcdr config files:
If I manually set my ROS_DISTRO to humble, which adjusts the CMake prefix path, then I get this error: