【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/
相关文章
|
10天前
|
存储 安全 Linux
|
12天前
|
Linux Shell 数据安全/隐私保护
|
27天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
75 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
13天前
|
Linux
Linux - 如何编译源码安装软件
源码编译安装通常包括三个步骤:1) `./configure` 检测平台特征和依赖项,生成 Makefile;2) `make` 编译源码,生成可执行文件;3) `make install` 将可执行文件安装到指定目录并配置环境变量。
28 0
|
9天前
|
缓存 监控 Linux
|
13天前
|
域名解析 网络协议 安全
|
19天前
|
运维 监控 网络协议
|
1天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
10 3
|
1天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
8 3

热门文章

最新文章