【ros-noetic rosserial_Arduino】在Arduino IDE 中 Rosserial_Arduino 库Helloworld 示例无法打开,打开后运行msg.h报错解决方法

报错情况:


1、Arduino IDE正常下载Rosserial Arduino Library 库时调用示例Hello World 打不开。

2、Arduino IDE验证示例Hello World 报错,报错如下


In file included from c:\Users\qizerone\Documents\Arduino\libraries\Rosserial_Arduino_Library\src/std_msgs/Time.h:7:0,
                 from c:\Users\qizerone\Documents\Arduino\libraries\Rosserial_Arduino_Library\src/ros/node_handle.h:40,
                 from c:\Users\qizerone\Documents\Arduino\libraries\Rosserial_Arduino_Library\src/ros.h:38,
                 from D:\ArdinoIDE\Ardion program\uart_test_1_3_16_test\sketch_mar16a\sketch_mar16a.ino:1:
c:\Users\qizerone\Documents\Arduino\libraries\Rosserial_Arduino_Library\src/ros/msg.h:40:10: fatal error: string: No such file or directory
 #include <string>
          ^~~~~~~~
compilation terminated.
exit status 1

Compilation error: exit status 1


 1、遇错情况:

        笔者在配置ros-noetic与Arduino通讯时,在调用Aruino IDE中下载rosserial Arduino Library后调用示例库中示例Hello World时,无法打开示例。且在打开后验证报错。

2、解决方案:

1、解决办法1;无法打开Hello world示例。

        解决思路:因为新版的Arduino IDE中对.pde文件不再支持,需要将Hello World.pde文件更改后缀为Hello World.ino文件

       1、 先打开文件夹的首选项。

        2、点击浏览项目文件夹位置。

        3、在examples中打开Hello Wold示例。

        4、将HelloWorld.pde文件重命名为HelloWorld.ino文件。

        注意:如果没有显示文件没有后缀名的话需要设置一下显示条件,具体步骤如下。

        保存后,可以再文件->示例->Rosserial Arduino Library->HelloWorld,就可以正常打开示例了。

1、解决办法2;编译验证HelloWorld报错。

        编译后报错如下:

In file included from c:\Users\qizerone\Documents\Arduino\libraries\Rosserial_Arduino_Library\src/std_msgs/Time.h:7:0,
                 from c:\Users\qizerone\Documents\Arduino\libraries\Rosserial_Arduino_Library\src/ros/node_handle.h:40,
                 from c:\Users\qizerone\Documents\Arduino\libraries\Rosserial_Arduino_Library\src/ros.h:38,
                 from C:\Users\qizerone\AppData\Local\Temp\.arduinoIDE-unsaved2024216-21972-ssfg3a.msna\HelloWorld\HelloWorld.ino:6:
c:\Users\qizeorne\Documents\Arduino\libraries\Rosserial_Arduino_Library\src/ros/msg.h:40:10: fatal error: cstring: No such file or directory
 #include <cstring>
          ^~~~~~~~~
compilation terminated.
exit status 1

Compilation error: exit status 1

1、打开Rosserial_Arduino_Library文件夹下的msg.h文件

        这边需要打开Rosserial_Arduino_library -> src -> ros -> msg.h文件,打开Rosserial_Arduino_Library项目文件夹步骤,上面提到了,这边就不再赘述。总之就是要修改msg.h文件。

2、删除#include <cstring>

3、修改代码语段。

        原本代码语段:

 std::memcpy(&val, &f, sizeof(val));

        将std::删除后的修改代码为:

 memcpy(&val, &f, sizeof(val));

        在Rosserial_Arduino_Library 0.9.1版本的情况下,需修改代码大概在68和182行左右,修改两处即可。

        修改完后保存,回到Arduino IDE再编译。

编译通过。

        就此问题解决,有用的话可以给笔者点个小小的赞,让笔者更有动力,如果能给笔者个关注,那笔者将会感激不尽,谢谢!

  • 40
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值