[ros-users] debian/wheezy & brown_perception & gscam build trouble

Oleksandr Lavrushchenko kpykcb at gmail.com
Fri May 27 20:49:55 UTC 2011


Hi all,

i has trouble with gscam package build on debian/wheezy. I know that
debian is not officially supported platform, but i don't want to
install ubuntu for various reasons now, as well as do some
chroot/virtual_machine installs, so have to fight with build failures
:(.

Here is build output:

===================================================================
0)ros/brown_perception% rosmake gscam
[ rosmake ] Packages requested are: ['gscam']
[ rosmake ] Logging to
directory/home/kp/.ros/rosmake/rosmake_output-20110527-225057
[ rosmake ] Expanded args ['gscam'] to:
['gscam']
[ rosmake ] Checking rosdeps compliance for packages gscam.  This may
take a few seconds.
Failed to find rosdep libgstreamer-plugins-base0.10-dev for package
gscam on OS:debian version:wheezy
Failed to find rosdep libgstreamer0.10-dev for package gscam on
OS:debian version:wheezy
Failed to find rosdep boost for package gscam on OS:debian version:wheezy
Failed to find rosdep log4cxx for package gscam on OS:debian version:wheezy
WARNING: Rosdeps [u'libgstreamer-plugins-base0.10-dev',
u'libgstreamer0.10-dev', u'boost', u'log4cxx'] could not be resolved
[ rosmake ] rosdep check passed all system dependencies in packages

==skip==

[ rosmake ] Last 40 linescam: 37.2 sec ]            [ 1 Active 32/33 Complete ]
{-------------------------------------------------------------------------------
  mkdir -p bin
  cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=`rospack find
rosbuild`/rostoolchain.cmake  ..
  [rosbuild] Building package gscam
  [rosbuild] Cached build flags older than manifests; calling rospack
to get flags
  [rosbuild] Including /home/kp/ros/ros_comm/clients/rospy/cmake/rospy.cmake
  [rosbuild] Including /home/kp/ros/ros_comm/clients/roslisp/cmake/roslisp.cmake
  [rosbuild] Including
/home/kp/ros/ros_comm/clients/cpp/roscpp/cmake/roscpp.cmake
  -- Configuring done
  -- Generating done
  CMake Warning: The variable, 'CMAKE_TOOLCHAIN_FILE', specified
manually, was not used during the generation.
  -- Build files have been written to: /home/kp/ros/brown_perception/gscam/build
  cd build && make -l4
  make[1]: Entering directory `/home/kp/ros/brown_perception/gscam/build'
  make[2]: Entering directory `/home/kp/ros/brown_perception/gscam/build'
  make[3]: Entering directory `/home/kp/ros/brown_perception/gscam/build'
  Scanning dependencies of target rospack_genmsg_libexe
  make[3]: Leaving directory `/home/kp/ros/brown_perception/gscam/build'
  [  0%] Built target rospack_genmsg_libexe
  make[3]: Entering directory `/home/kp/ros/brown_perception/gscam/build'
  Scanning dependencies of target rosbuild_precompile
  make[3]: Leaving directory `/home/kp/ros/brown_perception/gscam/build'
  [  0%] Built target rosbuild_precompile
  make[3]: Entering directory `/home/kp/ros/brown_perception/gscam/build'
  Scanning dependencies of target gscam
  make[3]: Leaving directory `/home/kp/ros/brown_perception/gscam/build'
  make[3]: Entering directory `/home/kp/ros/brown_perception/gscam/build'
  [100%] Building CXX object CMakeFiles/gscam.dir/src/gscam.o
  /home/kp/ros/brown_perception/gscam/src/gscam.cpp:22:17: warning:
‘gboolean processData(GstPad*, GstBuffer*, void*)’ declared ‘static’
but never defined
  Linking CXX executable ../bin/gscam
  /usr/bin/ld: CMakeFiles/gscam.dir/src/gscam.o: undefined reference
to symbol 'gst_base_sink_get_type'
  /usr/bin/ld: note: 'gst_base_sink_get_type' is defined in DSO
//usr/lib/libgstbase-0.10.so.0 so try adding it to the linker command
line
  //usr/lib/libgstbase-0.10.so.0: could not read symbols: Invalid operation
  collect2: ld returned 1 exit status
  make[3]: *** [../bin/gscam] Error 1
  make[3]: Leaving directory `/home/kp/ros/brown_perception/gscam/build'
  make[2]: *** [CMakeFiles/gscam.dir/all] Error 2
  make[2]: Leaving directory `/home/kp/ros/brown_perception/gscam/build'
  make[1]: *** [all] Error 2
  make[1]: Leaving directory `/home/kp/ros/brown_perception/gscam/build'
-------------------------------------------------------------------------------}
[ rosmake ] Output from build of package gscam written to:
[ rosmake ]    /home/kp/.ros/rosmake/rosmake_output-20110527-225057/gscam/build_output.log
[rosmake-2] Finished <<< gscam [FAIL] [ 37.17 seconds ]
[ rosmake ] Halting due to failure in package gscam.
[ rosmake ] Waiting for other threads to complete.
[ rosmake ] Results:
[ rosmake ] Built 33 packages with 1 failures.
[ rosmake ] Summary output to directory
[ rosmake ] /home/kp/.ros/rosmake/rosmake_output-20110527-225057
===================================================================

So, when i do as proposed by smart linker:
.~/ros/brown_perception/gscam/CMakeLists.txt
====
target_link_libraries(gscam gstreamer-0.10 gobject-2.0 gmodule-2.0
gthread-2.0 rt xml2 glib-2.0 gstapp-0.10 pthread gstbase-0.10)
====
 package build go fine. But earlier, i saw here in maillist that this
not good way. So what else i can do to fix build failures in that
case.

As i understand gstreamer-0.10 must cover gstbase-0.10 flags too, why
it does not, i have no clue.

Thanks for tips.

P.S. I think it will be very good to add this info:
rosrun image_view image_view image:=/gscam/image_raw

from: http://robotics.ccny.cuny.edu/wiki/Pioneer%203

to wiki of the brown_perception package:  http://www.ros.org/wiki/gscam

Of course, new users must read introductory tutorials on ROS (and
topics as a part), but anyway if you start streaming from cam for
first time then you usually want to watch stream to ensure proper
workflow.



More information about the ros-users mailing list