编译过程中出现如下错误:
/home/jack/dhrobot_ws/src/dhrobot_demo/src/up_down_demo.cpp:62:84: error: no matching function for call to ‘ros::NodeHandle::subscribe(const
char [15], int, bool (&)(const Bool&))’
ros::Subscriber marker_arm_flag = n.subscribe(“arm_cmd_talker”,10,marker_arm_back);
^
wtf,,,,祥哥表示一脸懵逼,我明明是写了回调函数的啊?!?!?!wtf,,,,祥哥表示一脸懵逼,我明明是写了回调函数的啊 ? ! ? ! ? !wtf,,,,祥哥表示一脸懵逼,我明明是写了回调函数的啊?!?!?!
赶紧把codefather简鸡蛋同志叫过来看了一眼,大佬不愧是大佬,一语惊醒梦中人!!!赶紧把code father简鸡蛋同志叫过来看了一眼,大佬不愧是大佬,一语惊醒梦中人!!!赶紧把codefather简鸡蛋同志叫过来看了一眼,大佬不愧是大佬,一语惊醒梦中人!!!
回调函数的类型手残写成了bool型,而人家明明没有返回值,难怪编译器找不到它0.0回调函数的类型手残写成了bool型,而人家明明没有返回值,难怪编译器找不到它0.0回调函数的类型手残写成了bool型,而人家明明没有返回值,难怪编译器找不到它0.0
修改完再次执行编译命令(切记切记,一定要先保存修改的程序再编译),编译顺利通过.修改完再次执行编译命令(切记切记,一定要先保存修改的程序再编译),编译顺利通过.修改完再次执行编译命令(切记切记,一定要先保存修改的程序再编译),编译顺利通过.
总结:
- 小白总是手高眼低,遇到错误要先冷静分析一下
- 遇到的问题要及时记录,防止后续重复遇到此问题
- 细节一定要注意,修改完程序及时备份与保存
- 编译时要注意是否成功对你要编译的程序进行了编译
- 如果指定一个功能包进行编译,再编译整个工作过程时会出现重复编译之前指定的功能包的情况(而不是编译整个工作空间),因此要使用
catkin_make -DCATKIN_WHITELIST_PACKAGES=''
命令进行编译