admin管理员组文章数量:1558103
注:错误持续更新…
一.ROS错误整理
1.The target name “test” is reserved or not valid for certain CMake features
CMake Error at lc/CMakeLists.txt:140 (add_executable):
The target name "test" is reserved or not valid for certain CMake features,
such as generator expressions, and may result in undefined behavior.
错误原因:test是ROS里的关键字,.cpp文件以test命名。
解决办法:将文件用别的名字命名。
2.what(): Character [ ] at element [9] is not valid in Graph Resource Name [cloud_syn ]. Valid characters are a-z, A-Z, 0-9, / and
terminate called after throwing an instance of 'ros::InvalidNameException'
what(): Character [ ] at element [9] is not valid in Graph Resource Name [cloud_syn ]. Valid characters are a-z, A-Z, 0-9, / and _.
已放弃 (核心已转储)
错误原因:阅的话题后有空格,如下:
#订阅的话题后有空格就会出现这个错误
ros::Subscriber sub=n.subscribe("cloud_syn ",1,callback);
解决办法:删除多余的空格。
3. This workspace contains non-catkin packages in it, and catkin cannot build
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:100 (message):
This workspace contains non-catkin packages in it, and catkin cannot build
a non-homogeneous workspace without isolation. Try the
'catkin_make_isolated' command instead.
Call Stack (most recent call first):
CMakeLists.txt:69 (catkin_workspace)
错误原因:catkin_ws/src里面包含了不是ROS(直接或间接)支持的包,不能catkin_make。
解决办法:移出对应的文件夹。
4.对‘ros::init(int&, char**, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, unsigned int)’未定义的引用
编译过程中出现如下问题:
CMakeFiles/obstaclepcl_node.dir/src/environment.cpp.o:在函数‘main’中:
environment.cpp:(.text.startup+0x80):对‘ros::init(int&, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)’未定义的引用
environment.cpp:(.text.startup+0xcc):对‘ros::NodeHandle::NodeHandle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)’未定义的引用
environment.cpp:(.text.startup+0x288):对‘ros::NodeHandle::~NodeHandle()’未定义的引用
environment.cpp:(.text.startup+0x320):对‘ros::NodeHandle::~NodeHandle()’未定义的引用
CMakeFiles/obstaclepcl_node.dir/src/environment.cpp.o:在函数‘_GLOBAL__sub_I_environment.cpp’中:
environment.cpp:(.text.startup+0x5b8):对‘ros::Publisher::~Publisher()’未定义的引用
environment.cpp:(.text.startup+0x5c0):对‘ros::Publisher::~Publisher()’未定义的引用
collect2: error: ld returned 1 exit status
obstaclepcl/CMakeFiles/obstaclepcl_node.dir/build.make:399: recipe for target '/home/nvidia/EnvironmentalPerception/devel/lib/obstaclepcl/obstaclepcl_node' failed
make[2]: *** [/home/nvidia/EnvironmentalPerception/devel/lib/obstaclepcl/obstaclepcl_node] Error 1
CMakeFiles/Makefile2:1084: recipe for target 'obstaclepcl/CMakeFiles/obstaclepcl_node.dir/all' failed
make[1]: *** [obstaclepcl/CMakeFiles/obstaclepcl_node.dir/all] Error 2
Makefile:145: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
错误原因:CMakeLists.txt编写错误。
解决办法:在CMakeLists.txt添加如下:
target_link_libraries(* ${catkin_LIBRARIES})
版权声明:本文标题:ROS学习笔记(番外)--ROS编程错误整理 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727341132a1109422.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论