【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)

简介: 【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)

一.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

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
13天前
|
NoSQL Linux 开发工具
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
本文介绍了yum 包管理工具、Vim 编辑器、gcc/g++ 编译器、gdb 调试器、编译原理及 Makefile 的使用,同时还配备了如何使用,以及图解。旨在帮助读者更好地理解和应用这些工具与技术。
|
7月前
|
Linux 编译器 开发工具
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
427 2
|
3月前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
295 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
7月前
|
存储 安全 Linux
|
6月前
|
Linux Android开发 开发者
linux m、mm、mmm函数和make的区别
通过理解和合理使用这些命令,可以更高效地进行项目构建和管理,特别是在复杂的 Android 开发环境中。
226 18
|
6月前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
826 14
|
Linux
LINUX进阶(其他篇)之make编译报错原因
LINUX进阶(其他篇)之make编译报错原因
444 0
|
27天前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
101 32
|
26天前
|
监控 Linux
Linux命令大全:echo与tail实现输出重定向。
这样,我们实现了使用echo和tail命令进行输出重定向的目的。在实际应用中,输出重定向技巧可节省时间,提高工作效率。希望本文内容对您了解和掌握Linux系统中echo与tail命令以及输出重定向的操作有所帮助。
95 27
|
22天前
|
消息中间件 Linux Kafka
linux命令使用消费kafka的生产者、消费者
linux命令使用消费kafka的生产者、消费者
101 16
下一篇
oss创建bucket
OSZAR »