ros-industrial / ros_canopen

CANopen driver framework for ROS (http://wiki.ros.org/ros_canopen)
GNU Lesser General Public License v3.0
328 stars 267 forks source link

catkin_make failed #456

Closed donghs1234 closed 2 years ago

donghs1234 commented 2 years ago

make other files is common when i run catkin_make on this project,it remind me "CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:95 (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:67 (catkin_workspace)

-- Configuring incomplete, errors occurred! See also "/home/beagle/canopen3git_ws/build/CMakeFiles/CMakeOutput.log". See also "/home/beagle/canopen3git_ws/build/CMakeFiles/CMakeError.log". Invoking "cmake" failed " then i used catkin_make_isolated,it remind me that "Scanning dependencies of target canopen_ros_chain [ 65%] Building CXX object CMakeFiles/canopen_ros_chain.dir/src/ros_chain.cpp.o In file included from /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp:3:0: /home/beagle/canopen3git_ws/src/ros_canopen/socketcan_interface/include/socketcan_interface/xmlrpc_settings.h: In member function ‘virtual bool XmlRpcSettings::getRepr(const string&, std::__cxx11::string&) const’: /home/beagle/canopen3git_ws/src/ros_canopen/socketcan_interface/include/socketcan_interface/xmlrpc_settings.h:29:39: error: passing ‘const XmlRpc::XmlRpcValue’ as ‘this’ argument discards qualifiers [-fpermissive] value = &((value)[segment]); ^ In file included from /home/beagle/canopen3git_ws/src/ros_canopen/socketcan_interface/include/socketcan_interface/xmlrpc_settings.h:6:0, from /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp:3: /opt/ros/melodic/include/xmlrpcpp/XmlRpcValue.h:100:18: note: in call to ‘XmlRpc::XmlRpcValue& XmlRpc::XmlRpcValue::operator[](const string&)’ XmlRpcValue& operator[](std::string const& k) { assertStruct(); return (_value.asStruct)[k]; } ^~~~ In file included from /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp:3:0: /home/beagle/canopen3git_ws/src/ros_canopen/socketcan_interface/include/socketcan_interface/xmlrpc_settings.h:34:31: error: passing ‘const XmlRpc::XmlRpcValue’ as ‘this’ argument discards qualifiers [-fpermissive] sstr << (value)[n]; ^ In file included from /home/beagle/canopen3git_ws/src/ros_canopen/socketcan_interface/include/socketcan_interface/xmlrpc_settings.h:6:0, from /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp:3: /opt/ros/melodic/include/xmlrpcpp/XmlRpcValue.h:100:18: note: in call to ‘XmlRpc::XmlRpcValue& XmlRpc::XmlRpcValue::operator[](const string&)’ XmlRpcValue& operator[](std::string const& k) { assertStruct(); return (_value.asStruct)[k]; } ^~~~ /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp: In member function ‘bool canopen::RosChain::setup_node(const XmlRpc::XmlRpcValue&, const string&, const canopen::MergedXmlRpcStruct&)’: /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp:475:25: error: ambiguous overload for ‘operator[]’ (operand types are ‘const XmlRpc::XmlRpcValue’ and ‘const char [3]’) node_id = params["id"]; ^ In file included from /home/beagle/canopen3git_ws/src/ros_canopen/socketcan_interface/include/socketcan_interface/xmlrpc_settings.h:6:0, from /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp:3: /opt/ros/melodic/include/xmlrpcpp/XmlRpcValue.h:97:24: note: candidate: const XmlRpc::XmlRpcValue& XmlRpc::XmlRpcValue::operator const XmlRpcValue const& operator[](int i) const { assertArray(i+1); return _value.asArray->at(i); } ^~~~ /opt/ros/melodic/include/xmlrpcpp/XmlRpcValue.h:97:24: note: conversion of argument 1 would be ill-formed: /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp:475:30: error: invalid conversion from ‘const char’ to ‘int’ [-fpermissive] node_id = params["id"]; ^ In file included from /home/beagle/canopen3git_ws/src/ros_canopen/socketcan_interface/include/socketcan_interface/xmlrpc_settings.h:6:0, from /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp:3: /opt/ros/melodic/include/xmlrpcpp/XmlRpcValue.h:98:18: note: candidate: XmlRpc::XmlRpcValue& XmlRpc::XmlRpcValue::operator XmlRpcValue& operator[](int i) { assertArray(i+1); return _value.asArray->at(i); } ^~~~ /opt/ros/melodic/include/xmlrpcpp/XmlRpcValue.h:98:18: note: conversion of argument 1 would be ill-formed: /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp:475:30: error: invalid conversion from ‘const char’ to ‘int’ [-fpermissive] node_id = params["id"]; ^ In file included from /home/beagle/canopen3git_ws/src/ros_canopen/socketcan_interface/include/socketcan_interface/xmlrpc_settings.h:6:0, from /home/beagle/canopen3git_ws/src/ros_canopen/canopen_chain_node/src/ros_chain.cpp:3: /opt/ros/melodic/include/xmlrpcpp/XmlRpcValue.h:100:18: note: candidate: XmlRpc::XmlRpcValue& XmlRpc::XmlRpcValue::operator[](const string&) XmlRpcValue& operator[](std::string const& k) { assertStruct(); return (_value.asStruct)[k]; } ^~~~ /opt/ros/melodic/include/xmlrpcpp/XmlRpcValue.h:100:18: note: passing ‘const XmlRpc::XmlRpcValue’ as ‘this’ argument discards qualifiers /opt/ros/melodic/include/xmlrpcpp/XmlRpcValue.h:101:18: note: candidate: XmlRpc::XmlRpcValue& XmlRpc::XmlRpcValue::operator[](const char) XmlRpcValue& operator[](const char k) { assertStruct(); std::string s(k); return (_value.asStruct)[s]; } ^~~~ /opt/ros/melodic/include/xmlrpcpp/XmlRpcValue.h:101:18: note: passing ‘const XmlRpc::XmlRpcValue’ as ‘this’ argument discards qualifiers CMakeFiles/canopen_ros_chain.dir/build.make:62: recipe for target 'CMakeFiles/canopen_ros_chain.dir/src/ros_chain.cpp.o' failed make[2]: [CMakeFiles/canopen_ros_chain.dir/src/ros_chain.cpp.o] Error 1 CMakeFiles/Makefile2:556: recipe for target 'CMakeFiles/canopen_ros_chain.dir/all' failed make[1]: [CMakeFiles/canopen_ros_chain.dir/all] Error 2 Makefile:140: recipe for target 'all' failed make: *** [all] Error 2 " i search for it but cant solve,so i look help here.