How to install yaml-cpp0.2.6-dev / How to install from source correctly
Hi Guys,
I'm not a total newbie to ROS and Ubuntu but I have a problem to install the yaml-cpp2.6-dev file.
I tried to make the uvc_camera Package and it complains about a missing dependencie of 'yaml-cpp' so i tried
$sudo apt-get yaml-cpp
but it unable to locate a package probably because of my armel architecture. Therefore i tried to compile it from source.
$ hg clone ttp://code.google.com/p/yaml-cpp/
$ mkdir build
$ cd build
$ cmake -DBUILD_SHARED_LIBS=ON ..
$ make
$ sudo make install
everything without a failure. So i tried to make the uvc_camera package again but it's still complaining about the missing yaml-cpp?
EDIT #1: By using rosmake uvc_camera --no-rosdep
it complains that camera_calibration_parsers is not installed (which is caused by the "missing" yaml2.6-dev)
EDIT #2:
This is the output for rosmake camera_calibration_parsers --no-rosdep
as joq suggested.
[ rosmake ] Packages requested are: ['camera_calibration_parsers']
[ rosmake ] Logging to directory/home/panda/.ros/rosmake/rosmake_output-20120613-113412
...
[ rosmake ] Expanded args ['camera_calibration_parsers'] to:
['camera_calibration_parsers']
[rosmake-1] Starting >>> camera_calibration_parsers [ make ]
[ rosmake ] Last 40 linesmera_calibration_parsers... [ 1 Active 28/29 Complete ]
{-------------------------------------------------------------------------------
/home/panda/ros_workspace/image_common/camera_calibration_parsers/src/parse_yml.cpp:50:6: note: void camera_calibration_parsers::operator>>(const YAML::Node&, camera_calibration_parsers::SimpleMatrix&)
/home/panda/ros_workspace/image_common/camera_calibration_parsers/src/parse_yml.cpp:50:6: note: no known conversion for argument 2 from ‘uint32_t {aka unsigned int}’ to ‘camera_calibration_parsers::SimpleMatrix&’
/home/panda/ros_workspace/image_common/camera_calibration_parsers/src/parse_yml.cpp:138:44: error: ‘class YAML::Node’ has no member named ‘FindValue’
/home/panda/ros_workspace/image_common/camera_calibration_parsers/src/parse_yml.cpp:139:31: error: no match for ‘operator>>’ in ‘* model_node >> cam_info.sensor_msgs::CameraInfo_<std::allocator<void> >::distortion_model’
/home/panda/ros_workspace/image_common/camera_calibration_parsers/src/parse_yml.cpp:139:31: note: candidates are:
/home/panda/ros_workspace/image_common/camera_calibration_parsers/src/parse_yml.cpp:50:6: note: void camera_calibration_parsers::operator>>(const YAML::Node&, camera_calibration_parsers::SimpleMatrix&)
/home/panda/ros_workspace/image_common/camera_calibration_parsers/src/parse_yml.cpp:50:6: note: no known conversion for argument 2 from ‘std::basic_string<char>’ to ‘camera_calibration_parsers::SimpleMatrix&’
/usr/include/c++/4.6/complex:488:5: note: template<class _Tp, class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::complex<_Tp>&)
/usr/include/c++/4.6/iomanip:229:5: note: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::_Setw)
/usr/include/c++/4.6/iomanip:199:5: note: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::_Setprecision)
/usr/include/c++/4.6/iomanip:169:5: note: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::_Setfill<_CharT>)
/usr/include/c++/4.6/iomanip:131:5: note: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::_Setbase)
/usr/include/c++/4.6/iomanip:100:5: note: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::_Setiosflags)
/usr/include/c++/4.6/iomanip:70:5: note: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream ...
rosmake does not recognize your hand-built version as satisfying the yaml-cpp dependency. Which ROS and Ubuntu distributions are you using?
I'm using a prebuild ubuntu-oneric-11.10-server on a pandaboard together with the electric version of ROS
You are not doing anything wrong, just fighting tools that were not designed to work this way. Note that none of this will work in Fuerte, so we really need a better method.
That's sad to here that this will not work out. I'm Using ROS Electric and not Fuerte. I tried to install the usb_cam package from the Bosch stack but the same error. It needs the yaml_cpp. Any idea how to install that right?
I think we can get it working for Electric, at least. I still want to know whether the #include of yaml-cpp/yaml.h in line 3 of parse_yml.cpp got resolved correctly. I can't tell from the truncated compiler errors you posted.
Also, please list the version of yaml-cpp you installed. ROS used 0.2.6, the newest version appears to be 0.3.0.
oh that could be a problem. because I just installed the actual one. How can I clone the old one? and uninstall the yaml0.3.0?
To uninstall 0.3.0, (probably) go to where you built it and run
sudo make uninstall
. To find 0.2.6, go to the code.google.com/p/yaml-cpp and click on "Show all" under "Downloads".