一.make的由来
"make"是一个用于自动化构建软件的工具,通常用于编译和构建程序。当你运行make命令时,make工具会查找当前目录下的Makefile文件,该文件包含了编译程序所需的指令和规则。
make起初是人们为了简化g++编译而发明出来的批处理工具,通过其自动调用指令而进行编译。
二.安装make
sudo apt install make
三.编写Makefile
进入到d2lros2/d2lros2/chapt2/basic
下使用vim新建Makefile。
然后将上一篇中的的g++编译指令用下面的形式写到Makefile里(最好要熟悉或者会使用基础的vim指令)。
build:
g++ first_ros2_node.cpp \
-I/opt/ros/jazzy/include/rclcpp/ \
-I /opt/ros/jazzy/include/rcl/ \
-I /opt/ros/jazzy/include/rcutils/ \
-I /opt/ros/jazzy/include/rmw \
-I /opt/ros/jazzy/include/rcl_yaml_param_parser/ \
-I /opt/ros/jazzy/include/rosidl_runtime_c \
-I /opt/ros/jazzy/include/rosidl_typesupport_interface \
-I /opt/ros/jazzy/include/rcpputils \
-I /opt/ros/jazzy/include/builtin_interfaces \
-I /opt/ros/jazzy/include/rosidl_runtime_cpp \
-I /opt/ros/jazzy/include/tracetools \
-I /opt/ros/jazzy/include/rcl_interfaces \
-I /opt/ros/jazzy/include/libstatistics_collector \
-I /opt/ros/jazzy/include/statistics_msgs \
-I /opt/ros/jazzy/include/service_msgs/ \
-I /opt/ros/jazzy/include/type_description_interfaces/ \
-I /opt/ros/jazzy/include/rosidl_dynamic_typesupport/ \
-I /opt/ros/jazzy/include/rosidl_typesupport_introspection_cpp/ \
-L /opt/ros/jazzy/lib/ \
-lrclcpp -lrcutils \
-o first_node
#编译执行完后立刻删除first_node
clean:
rm first_node
四.编译运行
键入以下命令即可编译生成可执行文件:
make build
运行该文件:
./first_node
开启新终端,可查看ros节点列表:
ros2 node list
五.删除可执行文件
make clean