I'm learning how to [make a simple rviz plugin](http://wiki.ros.org/pluginlib/Tutorials/Writing%20and%20Using%20a%20Simple%20Plugin) and I'm running into some trouble. The errors sound like maybe some includes are missing but I'm not sure. What is the next logical troubleshooting step after this?
$ make_catkin
make_catkin: command not found
jackson@jackson-VirtualBox:~/catkin_ws$ catkin_make
Base path: /home/jackson/catkin_ws
Source space: /home/jackson/catkin_ws/src
Build space: /home/jackson/catkin_ws/build
Devel space: /home/jackson/catkin_ws/devel
Install space: /home/jackson/catkin_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/jackson/catkin_ws/build"
####
####
#### Running command: "make -j2 -l2" in "/home/jackson/catkin_ws/build"
####
[ 50%] [100%] Built target polygon_plugins
Building CXX object pluginlib_tutorials_/CMakeFiles/polygon_loader.dir/src/polygon_loader.cpp.o
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp: In function ‘int main(int, char**)’:
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:6:26: error: ‘polygon_base’ was not declared in this scope
pluginlib::ClassLoader poly_loader("pluginlib_tutorials_", "polygon_base::RegularPolygon");
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:6:54: error: template argument 1 is invalid
pluginlib::ClassLoader poly_loader("pluginlib_tutorials_", "polygon_base::RegularPolygon");
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:6:67: error: invalid type in declaration before ‘(’ token
pluginlib::ClassLoader poly_loader("pluginlib_tutorials_", "polygon_base::RegularPolygon");
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:6:122: error: expression list treated as compound expression in initializer [-fpermissive]
pluginlib::ClassLoader poly_loader("pluginlib_tutorials_", "polygon_base::RegularPolygon");
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:6:122: error: invalid conversion from ‘const char*’ to ‘int’ [-fpermissive]
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:10:51: error: type/value mismatch at argument 1 in template parameter list for ‘template class boost::shared_ptr’
boost::shared_ptr triangle = poly_loader.createInstance("polygon_plugins::Triangle");
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:10:51: error: expected a type, got ‘polygon_base’
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:10:62: error: invalid type in declaration before ‘=’ token
boost::shared_ptr triangle = poly_loader.createInstance("polygon_plugins::Triangle");
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:10:76: error: request for member ‘createInstance’ in ‘poly_loader’, which is of non-class type ‘int’
boost::shared_ptr triangle = poly_loader.createInstance("polygon_plugins::Triangle");
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:11:13: error: base operand of ‘->’ is not a pointer
triangle->initialize(10.0);
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:13:51: error: type/value mismatch at argument 1 in template parameter list for ‘template class boost::shared_ptr’
boost::shared_ptr square = poly_loader.createInstance("polygon_plugins::Square");
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:13:51: error: expected a type, got ‘polygon_base’
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:13:60: error: invalid type in declaration before ‘=’ token
boost::shared_ptr square = poly_loader.createInstance("polygon_plugins::Square");
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:13:74: error: request for member ‘createInstance’ in ‘poly_loader’, which is of non-class type ‘int’
boost::shared_ptr square = poly_loader.createInstance("polygon_plugins::Square");
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:14:11: error: base operand of ‘->’ is not a pointer
square->initialize(10.0);
^
In file included from /opt/ros/indigo/include/pluginlib/class_loader.h:38:0,
from /home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:1:
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:16:45: error: base operand of ‘->’ is not a pointer
ROS_INFO("Triangle area: %.2f", triangle->area());
^
/opt/ros/indigo/include/ros/console.h:342:165: note: in definition of macro ‘ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER’
::ros::console::print(filter, __rosconsole_define_location__loc.logger_, __rosconsole_define_location__loc.level_, __FILE__, __LINE__, __ROSCONSOLE_FUNCTION__, __VA_ARGS__)
^
/opt/ros/indigo/include/ros/console.h:375:7: note: in expansion of macro ‘ROSCONSOLE_PRINT_AT_LOCATION’
ROSCONSOLE_PRINT_AT_LOCATION(__VA_ARGS__); \
^
/opt/ros/indigo/include/ros/console.h:557:35: note: in expansion of macro ‘ROS_LOG_COND’
#define ROS_LOG(level, name, ...) ROS_LOG_COND(true, level, name, __VA_ARGS__)
^
/opt/ros/indigo/include/rosconsole/macros_generated.h:110:23: note: in expansion of macro ‘ROS_LOG’
#define ROS_INFO(...) ROS_LOG(::ros::console::levels::Info, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:16:5: note: in expansion of macro ‘ROS_INFO’
ROS_INFO("Triangle area: %.2f", triangle->area());
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:17:41: error: base operand of ‘->’ is not a pointer
ROS_INFO("Square area: %.2f", square->area());
^
/opt/ros/indigo/include/ros/console.h:342:165: note: in definition of macro ‘ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER’
::ros::console::print(filter, __rosconsole_define_location__loc.logger_, __rosconsole_define_location__loc.level_, __FILE__, __LINE__, __ROSCONSOLE_FUNCTION__, __VA_ARGS__)
^
/opt/ros/indigo/include/ros/console.h:375:7: note: in expansion of macro ‘ROSCONSOLE_PRINT_AT_LOCATION’
ROSCONSOLE_PRINT_AT_LOCATION(__VA_ARGS__); \
^
/opt/ros/indigo/include/ros/console.h:557:35: note: in expansion of macro ‘ROS_LOG_COND’
#define ROS_LOG(level, name, ...) ROS_LOG_COND(true, level, name, __VA_ARGS__)
^
/opt/ros/indigo/include/rosconsole/macros_generated.h:110:23: note: in expansion of macro ‘ROS_LOG’
#define ROS_INFO(...) ROS_LOG(::ros::console::levels::Info, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)
^
/home/jackson/catkin_ws/src/pluginlib_tutorials_/src/polygon_loader.cpp:17:5: note: in expansion of macro ‘ROS_INFO’
ROS_INFO("Square area: %.2f", square->area());
^
make[2]: *** [pluginlib_tutorials_/CMakeFiles/polygon_loader.dir/src/polygon_loader.cpp.o] Error 1
make[1]: *** [pluginlib_tutorials_/CMakeFiles/polygon_loader.dir/all] Error 2
make: *** [all] Error 2
Invoking "make -j2 -l2" failed
↧