在我们拥有多个package的时候,我们定义了一个消息或者服务,并在代码中使用了这个消息或者服务。如果是单独编译这个包,编译 通过。但是如果是多个包一起编译,就会出现找不到相关头文件的错误。
原因: 编译时未按照严格顺序进行编译
解决办法:在使用自定义消息或者服务的包中,修改CMakeLists.txt,增加如下内容
add_dependencies(some_target ${${PROJECT_NAME}_EXPORTED_TARGETS})
作用:让编译器知道,编译some_target时,需要注意编译顺序
参考链接:ROS catkin CMakeList.txt: http://wiki.ros.org/catkin/CMakeLists.txt
原文链接:https://blog.youkuaiyun.com/kl1125290220/article/details/86489074
当有多个ROSpackage且包含自定义消息或服务时,可能出现编译错误。原因是编译顺序不正确。解决方法是在使用这些消息或服务的包的CMakeLists.txt中添加add_dependencies指令,确保编译器按照正确的顺序处理依赖。这样可以保证在编译目标时,其依赖的其他目标已经先被编译。
4220

被折叠的 条评论
为什么被折叠?



