写在前面
- 当前平台文章汇总地址:ROS2机器人从入门到实战
- 获取完整教程及配套资料代码,请关注公众号获取
- 教程配套机器人开发平台:两驱版| 四驱版
- 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn
答案是有的,那就是cmake工具。
cmake通过调用CMakeLists.txt直接生成Makefile。
1.安装Cmakesudo apt install cmake
2.新建CMakeLists.txt
在d2lros2/d2lros2/chapt2/basic
新建CMakeLists.txt
,输入下面内容。
cmake_minimum_required(VERSION 3.22)
project(first_node)
#include_directories 添加特定的头文件搜索路径 ,相当于指定g++编译器的-I参数
include_directories(/opt/ros/humble/include/rclcpp/)
include_directories(/opt/ros/humble/include/rcl/)
include_directories(/opt/ros/humble/include/rcutils/)
include_directories(/opt/ros/humble/include/rcl_yaml_param_parser/)
include_directories(/opt/ros/humble/include/rosidl_runtime_c/)
include_directories(/opt/ros/humble/include/rosidl_typesupport_interface/)
include_directories(/opt/ros/humble/include/rcpputils/)
include_directories(/opt/ros/humble/include/builtin_interfaces/)
include_directories(/opt/ros/humble/include/rmw/)
include_directories(/opt/ros/humble/include/rosidl_runtime_cpp/)
include_directories(/opt/ros/humble/include/tracetools/)
include_directories(/opt/ros/humble/include/rcl_interfaces/)
include_directories(/opt/ros/humble/include/libstatistics_collector/)
include_directories(/opt/ros/humble/include/statistics_msgs/)
# link_directories - 向工程添加多个特定的库文件搜索路径,相当于指定g++编译器的-L参数
link_directories(/opt/ros/humble/lib/)
# add_executable - 生成first_node可执行文件
add_executable(first_node first_ros2_node.cpp)
# target_link_libraries - 为first_node(目标) 添加需要动态链接库,相同于指定g++编译器-l参数
# 下面的语句代替 -lrclcpp -lrcutils
target_link_libraries(first_node rclcpp rcutils)
3.编译代码
我们一般会创建一个新的目录,运行cmake并进行编译,这样的好处是不会显得那么乱。
mkdir buildcd build
创建好文件夹,接着运行cmake指令,..
代表到上级目录找CMakeLists.txt
。
cmake ..
运行完cmake你应该可以在build目录下看到cmake自动生成的Makefile了,接着就可以运行make指令进行编译
make
运行完上面的指令,就可以在build目录下发现first_node
节点了。
ROS2前置教程汇总:
我因我们而存在,Ubuntu也有哲学意义
ROS2前置教程|在虚拟机中安装Ubuntu
ROS2前置教程 | 玩转Ubuntu之常用指令
ROS2前置教程|玩转Ubuntu之编程工具
ROS2前置教程 | 玩转Ubuntu之常用软件
ROS2前置基础教程 | 小鱼教你用g++编译ROS2节点
ROS2前置基础教程 | 小鱼教你用make编译ROS2节点
ROS2进阶教程汇总:
ROS2进阶教程| ROS2系统架构之操作系统打假