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.