[ros-users] Problem with tutorial 11: Writing a Simple Publi…

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
+ CMakeLists.txt (text/plain)
+ test.cpp (text/x-c++src)
Delete this message
Reply to this message
Author: #TAN ZHI PING#
Date:  
To: ros-users@code.ros.org
Subject: [ros-users] Problem with tutorial 11: Writing a Simple Publisher and Subscriber (C++)
Hi to all,

I tried to create an additional file, test.cpp, and wrote another executable line in CMakeList.txt as shown below:

rosbuild_add_executable(talker src/talker.cpp)
rosbuild_add_executable(listener src/listener.cpp)
rosbuild_add_executable(test src/test.cpp)

-----------------------------------------------------------test.cpp ------------------------------------------------
#include <ros/console.h>

int main(int argc, char **argv)
ros::init(argc, argv, "test");
ros::NodeHandle n;

  int count = 0;
  while (ros::ok())
  {
    ROS_DEBUG("Hello %s", "World");
    ROS_DEBUG_STREAM("Hello " << "World");
  }
}
-----------------------------------------------------------End ------------------------------------------------


But according to the Build output, there is no build target test. Why is that so?

-----------------------------------------------------------Build Output ---------------------------------------------------
mkdir -p bin
cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=`rospack find rosbuild`/rostoolchain.cmake ..
[rosbuild] Building package beginner_tutorials
[rosbuild] Including /opt/ros/cturtle/ros/core/rospy/cmake/rospy.cmake
[rosbuild] Including /opt/ros/cturtle/ros/core/roslisp/cmake/roslisp.cmake
[rosbuild] Including /opt/ros/cturtle/ros/core/roscpp/cmake/roscpp.cmake
-- Configuring done
-- Generating done
-- Build files have been written to: /home/snoopy/beginner_tutorials/build
cd build && make
make[1]: Entering directory `/home/snoopy/beginner_tutorials/build'
make[2]: Entering directory `/home/snoopy/beginner_tutorials/build'
make[3]: Entering directory `/home/snoopy/beginner_tutorials/build'
make[3]: Leaving directory `/home/snoopy/beginner_tutorials/build'
[ 0%] Built target rospack_genmsg_libexe
make[3]: Entering directory `/home/snoopy/beginner_tutorials/build'
make[3]: Leaving directory `/home/snoopy/beginner_tutorials/build'
[ 0%] Built target rosbuild_precompile
make[3]: Entering directory `/home/snoopy/beginner_tutorials/build'
make[3]: Leaving directory `/home/snoopy/beginner_tutorials/build'
[ 50%] Built target listener
make[3]: Entering directory `/home/snoopy/beginner_tutorials/build'
make[3]: Leaving directory `/home/snoopy/beginner_tutorials/build'
[100%] Built target talker
make[2]: Leaving directory `/home/snoopy/beginner_tutorials/build'
make[1]: Leaving directory `/home/snoopy/beginner_tutorials/build'
snoopy@ubuntu:~/beginner_tutorials$
--------------------------------------------------------- End ------------------------------------------------------

cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)

# Set the build type.  Options are:
#  Coverage       : w/ debug symbols, w/o optimization, w/ code-coverage
#  Debug          : w/ debug symbols, w/o optimization
#  Release        : w/o debug symbols, w/ optimization
#  RelWithDebInfo : w/ debug symbols, w/ optimization
#  MinSizeRel     : w/o debug symbols, w/ optimization, stripped binaries
#set(ROS_BUILD_TYPE RelWithDebInfo)


rosbuild_init()

#set the default path for built executables to the "bin" directory
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#set the default path for built libraries to the "lib" directory
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

#uncomment if you have defined messages
#rosbuild_genmsg()
#uncomment if you have defined services
#rosbuild_gensrv()

#common commands for building c++ executables and libraries
#rosbuild_add_library(${PROJECT_NAME} src/example.cpp)
#target_link_libraries(${PROJECT_NAME} another_library)
#rosbuild_add_boost_directories()
#rosbuild_link_boost(${PROJECT_NAME} thread)
#rosbuild_add_executable(example examples/example.cpp)
#target_link_libraries(example ${PROJECT_NAME})

rosbuild_add_executable(talker src/talker.cpp)
rosbuild_add_executable(listener src/listener.cpp)
rosbuild_add_executable(test src/test.cpp)
#include <ros/console.h>

int main(int argc, char **argv)
ros::init(argc, argv, "test");
ros::NodeHandle n;

  int count = 0;
  while (ros::ok())
  {
    ROS_DEBUG("Hello %s", "World");
    ROS_DEBUG_STREAM("Hello " << "World");
  }
}