当前位置: 首页 > 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

相关文章:

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

目录 零.前置篇章 一.make的由来 二.安装make 三.编写Makefile 四.编译运行 五.删除可执行文件 零.前置篇章 第一篇【Linux快速入门】Linux与ROS学习之编译基础(gcc编译)_linuxros-CSDN博客 一.make的由来 "make"是一个用于自…...

jupyterlab的安装与使用攻略/包括汉化方法

官网链接 Project Jupyter | Home 1.第一步安装 打开控制台 使用pip工具安装 pip install jupyterlab 如图 2.安装成功后启动 jupyter lab 会自动启动它的web页面 然后就可以正常使用咯!! 如果需要更换浏览器访问 新开控制台执行下面命令 jupy…...

std::list

std::list是C标准库中的一个序列容器,它提供了双向链表的功能。std::list允许在序列的任何位置高效地插入和删除元素,而不会引起其他元素的移动,这使得std::list在需要频繁插入和删除操作的场景中非常有用。 std::list的特性: 双…...

opencv-rust 系列2: camera_calibration

opencv-rust 系列2: camera_calibration 前言: 这里只是opencv-rust自带示例的中文注解. 略微增加了一些代码也是我在调试时用到的. 说明: camera_calibration.rs是opencv-rust自带的示例, 在examples目录中可以找到,我增加了一些中文注释如下.如需运行可以在项目根目录执行命…...

JVM和GC案例详解

接上文JVM环境配置说明:上文博客 一、JVM远程连接设置 1. JMX方式连接(这种方式没有GC监控),设置如下 2. 连接成功后可以查看基础配置参数(和服务器配置一致) 2. jstatd方式连接(这种方式没有CPU监控) 添加jstatd方式连接 双击Tomcat&#xff0…...

postgreSql下载安装

一、下载 官网:PostgreSQL: The worlds most advanced open source database 二、安装 1.找到.exe文件,双击安装 2.跟着安装向导操作 三、启动...

GPT-SOVIT模型部署指南

一、模型介绍 强大的小样本语音转换和文本转语音 WebUI。 具有以下特征: 零样本 TTS: 输入 5 秒的声音样本并体验即时文本到语音的转换。少量样本 TTS: 仅使用 1 分钟的训练数据对模型进行微调,以提高语音相似度和真实感。跨语…...

怎么定时发朋友圈?

要实现微信朋友圈的定时发布,可以采用以下几种方法: 1、 绑定QQ号并使用QQ空间定时功能: 于微信和QQ的紧密联系,可以通过绑定QQ号,利用QQ空间的定时发布功能来间接实现微信朋友圈的定时发布。首先,在QQ空…...

如何利用phpstudy创建mysql数据库

phpStudy诞生于2007年,是一款老牌知名的PHP开发集成环境工具,产品历经多次迭代升级,目前有phpStudy经典版、phpStudy V8(2019版)等等,利用phpstudy可以快速搭建一个mysql环境,接下来我们就开始吧…...

五、Linux之Vi和Vim编辑器

基本介绍 Vi Linux 系统会内置 vi 文本编辑 Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。 代码补完、编译及错误跳转等方便编程的功能特别丰富 常用的三种模式 正常模式 以 vim …...

git删除错误的commit

文章目录 1、git删除错误的commit2、.gitignore配置文件不生效的问题 1、git删除错误的commit git的流程如图: 当某次失误造成commit的版本有问题,需要回退到正常的版本修改后重新add。 首先通过git log查看commit提交记录,可以看到HEAD-…...

代码随想录算法训练营Day08 | 344.反转字符串、541. 反转字符串II、卡码网:54.替换数字

文章目录 344.反转字符串思路与重点 541. 反转字符串II思路与重点 卡码网:54.替换数字思路与重点 344.反转字符串 题目链接:344. 反转字符串 - 力扣(LeetCode)讲解链接:代码随想录 (programmercarl.com)状态&#xff…...

mysql锁之乐观锁、悲观锁、表锁、行锁、共享锁、排他锁

mysql锁之乐观锁、悲观锁、表锁、行锁、共享锁、排他锁 MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一个资源的机制,在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资…...

【软件干货】Android应用进程如何保活?

​1.Android 应用进程保活方法介绍 在Android应用程序中,为了保证应用的正常运行和稳定性,有时需要对应用进程进行保活。以下是一些实现进程保活的方法: 1、使用前台服务(Foreground Service):将服务调用startForeground()方法&…...

neo4j部署保姆级教程

由于公司是基于大数据架构的,让部署neo4j数据库,之前没有接触过,然后紧急学了一下,并且从网上找了一些教程,决定还是记录下来,后续有时间了会在出一篇使用教程 环境准备(root用户) …...

【STM32CubeMX开发】-2.2-TIM_输出一个PWM信号

目录 1 Tim定时器的时钟源 2 Tim定时器的配置 2.1 PWM配置 2.2 中断配置 3 生成代码 4 测试结果 结尾 1 Tim定时器的时钟源 TIM3的时钟来源自APB1 Timer clocks,时钟树上所有总线频率均设置为了STM32F0能达到的最高频率,此时APB1 Timer clocks …...

Ngx+Lua+Redis 快速存储POST数据

系统几万台设备有windows有安卓还有linux系统,每个设备三分钟就会向服务器post设备的硬件信息,数据格式json,后台管理界面只需要最新的数据,不需要历史数据,业务逻辑非常简单,PHP代码就几行,已经…...

go-delve的使用

go-delve的非交互使用方式: dlv要执行的命令文件:cmd.dlv goroutines exit 执行非交互命令: yes n | dlv --allow-non-terminal-interactivetrue attach $pid --init cmd.dlv --end--...

Python网络爬虫技术详解

Python网络爬虫技术详解 引言 网络爬虫(Web Crawler),又称网络蜘蛛(Web Spider)或网络机器人(Web Robot),是一种按照一定规则自动抓取互联网信息的程序或脚本。它们通过遍历网页链…...

Golang | Leetcode Golang题解之第474题一和零

题目: 题解: func findMaxForm(strs []string, m, n int) int {dp : make([][]int, m1)for i : range dp {dp[i] make([]int, n1)}for _, s : range strs {zeros : strings.Count(s, "0")ones : len(s) - zerosfor j : m; j > zeros; j--…...

Gon部署与运维:生产环境配置、监控和故障排除完整手册

Gon部署与运维:生产环境配置、监控和故障排除完整手册 【免费下载链接】gon Your Rails variables in your JS 项目地址: https://gitcode.com/gh_mirrors/go/gon Gon是一款专为Rails应用设计的实用工具,能够轻松实现Rails变量在JavaScript中的共…...

ai辅助硬件设计:让快马智能解析并生成db9接口与mcu连接的完整原理图与代码

在硬件开发中,DB9接口的设计与连接是个常见但容易出错的环节。最近我在一个嵌入式项目里需要实现STM32与DB9接口的RS-232通信,发现传统设计流程存在几个痛点: 引脚定义容易混淆 DB9公头和母头的引脚定义是相反的,比如母头的2号引脚…...

基于摄像头和网络的火灾监测系统开源项目推荐

推荐的开源项目 基于YOLOv10的火焰烟雾检测系统(最推荐) 特点:支持图像、视频和摄像头实时检测,提供完整的GUI界面(PySide6开发)优势:界面简洁易用,代码结构清晰,适合初学…...

AgentCPM-Report研报系统实操:Pixel Epic贤者响应延迟优化教程

AgentCPM-Report研报系统实操:Pixel Epic贤者响应延迟优化教程 1. 认识Pixel Epic智识终端 Pixel Epic是一款基于AgentCPM-Report大模型构建的创新研究报告辅助系统。与传统AI工具不同,它将枯燥的科研过程转化为一场像素风格的RPG冒险。在这个系统中&a…...

数据驱动决策的基石:Awesome Public Datasets实用探索手册

数据驱动决策的基石:Awesome Public Datasets实用探索手册 【免费下载链接】awesome-public-datasets A topic-centric list of HQ open datasets. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-public-datasets 在数据驱动决策日益成为商业竞…...

利用快马平台快速构建arm7流水灯原型,十分钟验证硬件控制逻辑

最近在带学生入门嵌入式开发时,发现ARM7这类经典架构虽然功能强大,但初学者往往会被复杂的环境搭建劝退。为了让大家能快速上手硬件控制逻辑,我尝试用InsCode(快马)平台构建了一个LED流水灯原型,整个过程比想象中顺畅很多。 项目设…...

如何通过开源数据集创造商业价值:Awesome Public Datasets全攻略

如何通过开源数据集创造商业价值:Awesome Public Datasets全攻略 【免费下载链接】awesome-public-datasets A topic-centric list of HQ open datasets. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-public-datasets 在数据驱动决策的时代&a…...

高压柔性输电系统中的6脉冲与12脉冲晶闸管控制HVDC仿真模型说明文档

高压柔性输电系统6脉冲,12脉冲晶闸管控制HVDC的仿真模型,说明文档江湖上流传着这么一句话:"搞HVDC不玩晶闸管,就像吃火锅不放辣"。今天咱们就扒一扒那些藏在MATLAB/Simulink里的6脉冲和12脉冲换流器秘密。先说个冷知识&…...

RenderDoc实战:5分钟搞定OpenGL性能瓶颈定位(附Android联调技巧)

RenderDoc实战:5分钟定位OpenGL性能瓶颈的完整指南 移动端图形开发最令人头疼的瞬间,莫过于看到测试报告上"FPS波动大"的红色标记,却不知道从哪开始排查。上周团队里新来的工程师花了三天时间逐行检查着色器代码,最后发…...

终极无损视频剪辑神器:LosslessCut完整指南与5大实用技巧

终极无损视频剪辑神器:LosslessCut完整指南与5大实用技巧 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 你是否曾因视频剪辑导致画质下降而烦恼&#xff…...