ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

What to edit in CMakeLists.txt for helloworld program? [closed]

asked 2014-09-02 10:53:01 -0500

lffox gravatar image

updated 2014-09-03 08:51:02 -0500

Hello,

I'm new to ROS and I have been reading http://www.cse.sc.edu/~jokane/agitr/a... , to get started on ROS. But the CMakeLists.txt file shown in the book as well as on ROS tutorials don't match with what I am having on my pc. Pardon my ignorance as I'm new to this. Any help is greatly appreciated.

This is the file I have.

cmake_minimum_required(VERSION 2.8.3)
project(agitr)
## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED)
## System dependencies are found with CMake's conventions
# find_package(Boost REQUIRED COMPONENTS system)
## Uncomment this if the package has a setup.py. This macro ensures
## modules and global scripts declared therein get installed
## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
# catkin_python_setup()
################################################
## Declare ROS messages, services and actions ##
################################################
## To declare and build messages, services or actions from within this
## package, follow these steps:
## * Let MSG_DEP_SET be the set of packages whose message types you use in
##   your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
## * In the file package.xml:
##   * add a build_depend and a run_depend tag for each package in MSG_DEP_SET
##   * If MSG_DEP_SET isn't empty the following dependencies might have been
##     pulled in transitively but can be declared for certainty nonetheless:
##     * add a build_depend tag for "message_generation"
##     * add a run_depend tag for "message_runtime"
## * In this file (CMakeLists.txt):
##   * add "message_generation" and every package in MSG_DEP_SET to
##     find_package(catkin REQUIRED COMPONENTS ...)
##   * add "message_runtime" and every package in MSG_DEP_SET to
##     catkin_package(CATKIN_DEPENDS ...)
##   * uncomment the add_*_files sections below as needed
##     and list every .msg/.srv/.action file to be processed
##   * uncomment the generate_messages entry below
##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
## Generate messages in the 'msg' folder
# add_message_files(
#   FILES
#   Message1.msg
#   Message2.msg
# )
## Generate services in the 'srv' folder
# add_service_files(
#   FILES
#   Service1.srv
#   Service2.srv
# )
## Generate actions in the 'action' folder
# add_action_files(
#   FILES
#   Action1.action
#   Action2.action
# )
## Generate added messages and services with any dependencies listed here
# generate_messages(
#   DEPENDENCIES
#   std_msgs  # Or other packages containing msgs
# )
###################################
## catkin specific configuration ##
###################################
## The catkin_package macro generates cmake config files for your package
## Declare things to be passed to dependent projects
## INCLUDE_DIRS: uncomment this if you package contains header files
## LIBRARIES: libraries you create in this project that dependent projects also need
## CATKIN_DEPENDS: catkin_packages dependent projects also need
## DEPENDS: system dependencies of this project that dependent projects also need
catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES agitr
#  CATKIN_DEPENDS other_catkin_pkg
#  DEPENDS system_lib
)
###########
## Build ##
###########
## Specify additional locations of header files
## Your package locations should be listed before other locations
# include_directories(include)
## Declare a cpp library
# add_library(agitr
#   src/${PROJECT_NAME}/agitr.cpp
# )
## Declare a cpp executable
# add_executable(agitr_node src/agitr_node.cpp)
## Add cmake target dependencies of the executable/library
## as an example, message headers may need to be generated before nodes
# add_dependencies(agitr_node agitr_generate_messages_cpp)
## Specify libraries to link a library or executable target against
# target_link_libraries(agitr_node
#   ${catkin_LIBRARIES}
# )
#############
## Install ##
#############
# all install targets should use catkin DESTINATION variables ...
(more)
edit retag flag offensive reopen merge delete

Closed for the following reason question is not relevant or outdated by lffox
close date 2017-03-24 10:46:55.035149

Comments

@Martin Thanks for formatting. Kindly tell me what option you used. I tried to do this while posting, but never managed.

lffox gravatar image lffox  ( 2014-09-03 07:42:33 -0500 )edit

@grimreaper no problem! The easiest way to add code highlighting to your post is selecting the code and hitting ctrl+k

Martin Peris gravatar image Martin Peris  ( 2014-09-03 20:02:37 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2014-09-02 14:46:07 -0500

Andromeda gravatar image

updated 2014-09-03 14:28:31 -0500

The CMakeLists.txt that you posted is the default file created by catkin when making a new package. It is always the same (not really true, but for a beginner is not a prob)

You have 2 choices:

  1. leave the file as it is and just update the field in the file as reported in the book you posted at paragraph: 3.2.2 Compiling the Hello program
  2. remove completely the file in you folder, create a CMakeLists.txt on your own and copy the content form the book.

To me is much better the first option....slowly you get an idea on what is waiting for you in the future :) :) :)

EDIT: There are 2 mistakes in your code:

  1. you should remove in hello.cpp the space between < and ros For istance: #include <ros/ros.h>
  2. at the last line you put : but it must be ;

Clear now?

edit flag offensive delete link more

Comments

Hello, Thanks for your reply. I edited the CMakeLists.txt (as in 2. in your ans) and tried catkin_make, but I got the folllowing error. make[2]: * [agitr/CMakeFiles/hello.dir/hello.cpp.o] Error 1 make[1]: [agitr/CMakeFiles/hello.dir/all] Error 2 make: ** [all] Error 2 Invoking "make" failed

lffox gravatar image lffox  ( 2014-09-03 07:41:02 -0500 )edit

Did you copy the code from the pdf file without removing the line code number before? In the text every line is numbered..pay attention. That number must be removed in your file

Andromeda gravatar image Andromeda  ( 2014-09-03 07:51:23 -0500 )edit

Since I cannot write too much in this comment edit your original question with the code that you really are trying to compile

Andromeda gravatar image Andromeda  ( 2014-09-03 07:52:51 -0500 )edit

Please check the edit. I have added my CmakeLists.txt and the cpp code.

lffox gravatar image lffox  ( 2014-09-03 08:20:05 -0500 )edit

Ok, it is clear....you copied too many unnecessary symbols. Please delete your .cpp and CMakeLists.txt and TYPE your self every single letter with the keyboard as in the book. Ok?

Andromeda gravatar image Andromeda  ( 2014-09-03 08:23:39 -0500 )edit

between a command and the argument there is no space. for istance: add_executable( hello hello.cpp) # and not add_executable ( hello hello.cpp) # see you the space befor the () symbols?

Andromeda gravatar image Andromeda  ( 2014-09-03 08:25:16 -0500 )edit

I still get the same error. Removed all white spaces. adding the edit to the question.

lffox gravatar image lffox  ( 2014-09-03 08:47:16 -0500 )edit

@Andromeda any idea why?

lffox gravatar image lffox  ( 2014-09-03 12:04:30 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2014-09-02 10:53:01 -0500

Seen: 906 times

Last updated: Sep 03 '14