Has anyone gotten node.cpp(330): error C2131: expression did not evaluate to a constant, on catkin_make of rplidar_ros package?
Hi there,
I've been using RosOnWindows (Windows 10, melodic) successfully for about 6 months. I just obtained an Rplidar A2M8.
I was able to download the driver and successfully ran the frame grabber, to make sure it works.
I cloned the software from: https://github.com/slamtec/rplidar_ros into my workspace.
I attempted to catkin_make the workspace.
I actually received two errors:
...rplidar_ros\src\node.cpp(330): error C2131: expression did not evaluate to a constant
...rplidar_ros\src\node.cpp(328): note: failure was caused by a read of a variable outside its lifetime
...rplidar_ros\src\node.cpp(328): note: see usage of 'angle_compensate_multiple'
...rplidar_ros\src\node.cpp(344): error C3863: array type 'rplidar_response_measurement_node_hq_t [angle_compensate_nodes_count]' is not assignable
I searched but didn't find any hits concerning people having problems simply compiling after just cloning. Any help, hints would be appreciated. Thanks in advance.
Asked by JayROS on 2020-05-12 10:42:59 UTC
Comments
MSVC does not seem to support variable length arrays. These are a C99 feature, while MSVC conforms to the C90 standard. They are also not a part of ISOC++. gcc allows some extensions and features such as this one, so it builds. Compiling with -pedantic will warn about line 330.
Asked by pcoenen on 2020-05-13 06:37:50 UTC
Thank you very much for your quick answer. I really appreciate your help!
Asked by JayROS on 2020-05-13 11:02:04 UTC