[ros-users] [Discourse.ros.org] [Next Generation ROS] Cannot run executable and lib using ros2 run after building using ament

Arunava Nag ros.discourse at gmail.com
Thu Sep 14 09:51:24 UTC 2017



I wrote a simple package with class and library to subscribe and publish using rclcpp. 

My CMakeLists.txt is:

    cmake_minimum_required(VERSION 3.5)

    project(testpackage)

    if(NOT WIN32)
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra")
    endif()

    find_package(ament_cmake REQUIRED)
    find_package(rclcpp REQUIRED)
    find_package(std_msgs REQUIRED)

    include_directories(include 
    					${rclcpp_INCLUDE_DIRS}
                        ${rmw_implementation_INCLUDE_DIRS}
                        ${std_msgs_INCLUDE_DIRS})

    add_library(test_lib
    src/test.cpp
    )

    target_link_libraries(test_lib ${rclcpp_LIBRARIES} ${rmw_implementation_LIBRARIES} ${std_msgs_LIBRARIES})

    add_executable(test_node src/test_node.cpp)
    add_dependencies(test_node test_lib)
    target_link_libraries(test_node test_lib)

    install(
      DIRECTORY include/${PROJECT_NAME}
      DESTINATION include
    )

    install(
      TARGETS test_lib test_node 
      ARCHIVE DESTINATION lib
      LIBRARY DESTINATION lib
      RUNTIME DESTINATION bin
    )

    ament_package()


It builds well. However when I try to run the package like this:
 
`ros2 run testpackage test_node` 
it says no executable found. 

Is there something like roscore in ros2 to have the ROS_MASTER and ros services running? I have sourced `install/local_setup.bash` as given in the tutorials.

I have built using the command =  `ament build --symlink-install --only-package testpackage`
Also i realised, my library is not created inside install/lib/.





---
[Visit Topic](https://discourse.ros.org/t/cannot-run-executable-and-lib-using-ros2-run-after-building-using-ament/2640/1) or reply to this email to respond.




More information about the ros-users mailing list