ubuntu20.04
在B站视频《面向过程思想编写cpp节点》
https://www.bilibili.com/video/BV1gr4y1Q7j5/?p=25&spm_id_from=pageDriver&vd_source=5340b8baff6fb33e9d5215026c441964
中。最后会出现此问题
ros2@ros2-virtual-machine:~/town_ws$ ros2 run village_wang wang2_node
No executable found
查阅资料说 使用ros2 run的时候找不到头文件,是因为现在和ros1不一样了。你必须要将可执行文件注册,ros2命令才找得到。但是此前已经在CMakeLists头文件中进行注册了
下面文档CMakeLists.txt中有关的部分代码
ament_package()
add_executable(wang2_node src/wang2.cpp)
ament_target_dependencies(wang2_node rclcpp)
install(TARGETS wang2_node
DESTINATION lib/${PROJECT_NAME}
)
ament_package()
下面是wang.cpp代码
#include "rclcpp/rclcpp.hpp"
int main(int argc,char ** argv)
{
rclcpp::init(argc,argv);
auto node = std::make_shared<rclcpp::Node>("wang2");
RCLCPP_INFO(node->get_logger(),"大家好,我是单身狗wang2.");
rclcpp::spin(node);
rclcpp::shutdown();
}
下面是运行中的结果
ros2@ros2-virtual-machine:~/town_ws$ colcon build --packages-select village_wang
Starting >>> village_wang
Finished <<< village_wang [0.19s]
Summary: 1 package finished [0.40s]
ros2@ros2-virtual-machine:~/town_ws$ source install/setup.bash
ros2@ros2-virtual-machine:~/town_ws$ ros2 pkg list | grep vill
village_li
village_wang
ros2@ros2-virtual-machine:~/town_ws$ ros2 run village_wang wang2_node
No executable found