当前位置: 首页 > news >正文

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

目录

零.前置篇章 

一.make的由来

二.安装make        

三.编写Makefile

四.编译运行

五.删除可执行文件


零.前置篇章 

  1.  第一篇【Linux快速入门】Linux与ROS学习之编译基础(gcc编译)_linux+ros-CSDN博客

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

http://www.lryc.cn/news/460266.html

相关文章:

  • jupyterlab的安装与使用攻略/包括汉化方法
  • std::list
  • opencv-rust 系列2: camera_calibration
  • JVM和GC案例详解
  • postgreSql下载安装
  • GPT-SOVIT模型部署指南
  • 怎么定时发朋友圈?
  • 如何利用phpstudy创建mysql数据库
  • 五、Linux之Vi和Vim编辑器
  • git删除错误的commit
  • 代码随想录算法训练营Day08 | 344.反转字符串、541. 反转字符串II、卡码网:54.替换数字
  • mysql锁之乐观锁、悲观锁、表锁、行锁、共享锁、排他锁
  • 【软件干货】Android应用进程如何保活?
  • neo4j部署保姆级教程
  • 【STM32CubeMX开发】-2.2-TIM_输出一个PWM信号
  • Ngx+Lua+Redis 快速存储POST数据
  • go-delve的使用
  • Python网络爬虫技术详解
  • Golang | Leetcode Golang题解之第474题一和零
  • 算法刷题技巧
  • BMS、EMS PCS 简介
  • spug3发布项目
  • 鸿蒙HarmonyOS开发:应用权限的基本概念及如何申请应用权限详细介绍
  • mac 桌面版docker no space left on device
  • 基于CIM的街镇基层治理统一指挥平台建设方案
  • PostgreSQL学习笔记三:数据类型和运算符
  • ROS理论与实践学习笔记——6 ROS机器人导航(仿真)
  • uniapp开发微信小程序,button的open-type=“share“ 分享给个人跳转到首页问题
  • 【jQuery】 jQuery基础及选择器介绍(基本选择器 层次选择器 属性选择器 过滤选择器)
  • 网站在对抗机器人攻击的斗争中失败了