在docker上运行LCM

目录

1.加载镜像并进入容器

2.安装依赖

3.在docker外部git-clone lcm

4.将get-clone的lcm复制到容器中

5.编译库

6.将可执行文件复制到容器中

7.进入可执行文件

8.编译可执行文件

9.再开一个终端运行程序

10.将以上容器打成镜像并导出


1.加载镜像并进入容器

sudo docker run -it ubuntu bash

mkdir app //建立app目录

2.安装依赖

//换源
sed -i 's/http:\/\/archive.ubuntu.com\/ubuntu\//http:\/\/mirrors.aliyun.com\/ubuntu\//g' /etc/apt/sources.list

echo "nameserver 8.8.8.8" > /etc/resolv.conf

apt-get update \

    && apt-get install build-essential libglib2.0-dev cmake \

    && apt-get install default-jdk python-all-dev liblua5.1-dev golang doxygen

3.在docker外部git-clone lcm

​
git clone https://github.com/lcm-proj/lcm.git

4.将get-clone的lcm复制到容器中

docker cp /home/f**/lcm 87d:/app  //87d是创建容器生成的ID号

5.编译库

cd lcm

vim /etc/profuile

在最后一行添加

export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

source /etc/profile

cmake ..

make

make install

以上步骤将环境都安装完成了

6.将可执行文件复制到容器中

docker cp /home/fuzhifang/LCM 87d:/app  //87d是创建容器生成的ID号

LCM是可执行文件

7.进入可执行文件

cd /app/LCM
lcm-gen -x example_t.lcm
g++ -o send_message send_message.cpp -llcm
g++ -o listener listener.cpp -llcm

8.编译可执行文件

mkdir build
cd build
cmake ..
make

9.再开一个终端运行程序

sudo docker exec -it 87d bash
cd /app/LCM/build
终端1 ./lister     终端2  ./send_message

10.将以上容器打成镜像并导出

退出镜像exit

提交容器

docker commit 87df17537bc4 mylcm:v11

查看镜像

导出压缩包

docker save -o lcm_images0108.tar mylcm:v11

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/301531.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云卷云舒:【实战篇】对象存储迁移

云卷云舒:【实战篇】MySQL迁移-CSDN博客 1. 简介 对象存储与块存储、文件存储并列为云计算三大存储模型。提供海量存储空间服务,具备快速的数据存取性能、高可靠和数据安全性,通过标准的RESTful API接口和丰富的SDK包来提供服务&#xff0c…

红日靶场 4

靶场配置 ​ 733 x 668899 x 819 ​ ​ 733 x 6161466 x 1232 ​ ​ 733 x 6261449 x 1237 ​ ​ 733 x 6301450 x 1247 ​ IP 地址分配: Win7: 192.168.183.133(内网)Ubuntu: 192.168.183.134(内网) 192.168.120.137(外网)DC: 192.168.183.130(内网)Kali…

springboot+ipage分页频繁请求会报错 自动添加多一个limit

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near LIMIT 500 at line 3 这个原因是因为springboot配置mysql的连接池太…

Xshell连接Ubuntu失败

错误: Xshell连接Ubuntu失败。 Connecting to 192.168.xx.xxx:22…Could not connect to 192.168.xx.xxx’ (port 22): Connection failed. 解决方案:边解决,边测试Xshell是否可以连接 1、SSH 服务未启动: 确保 Ubuntu 上的 S…

多线程执行后台任务,提供效率

场景: 大批量复制物料描述到新的物料上,多线程同时执行已提高效率 REPORT zmm316. INCLUDE zmm316_top. INCLUDE zmm316_f01. *----------------------------------------------------------------------- I N I T I A L I Z A T I O N *------------…

【STM32】STM32学习笔记-USART串口外设(26)

00. 目录 文章目录 00. 目录01. 串口简介02. 串口协议03. USART简介04. USART框图05. USART基本结构06. 数据帧07. 起始位侦测08. 数据采样09. 波特率发生器10. 附录 01. 串口简介 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便…

Redis内存策略:「过期Key删除策略」+ 「内存淘汰策略」

Redis之所以性能强,最主要的原因就是基于内存存储,然而单节点的Redis其内存大小不宜过大,否则会影响持久化或主从同步的性能。 Redis内存满了,会发生什么? 在Redis的运行内存达到了某个阈值,就会触发内存…

java基础之set集合练习(HashSet,LinkedHashSet,TreeSet)

1:完成以下填空: Collection 接口的特点是 存放list与set共性内容 没有直接实现类 没有明确的存储特点要求 ; 2:List 接口的特点是元素 有 (有|无)顺序, 可 (可以|不可以&#…

九、HTML头部<head>

一、HTML头部<head> 1、<title>- 定义了HTML文档的标题 使用 <title> 标签定义HTML文档的标题 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>我的 HTML 的第一页</title> </head><b…

MySQL8.0安装(Linux - centos)

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 其他…

STM32F103GPIO工作模式及原理

目录 GPIO简介GPIO工作模式输入模式输出模式输出速度 GPIO框图和电路解析电路标识电路元件 GPIO工作模式电路解析浮空输入上拉输入下拉输入模拟输入开漏输出推挽输出推挽式复用功能开漏式复用功能 IO工作模式的选取输入模式输出模式 GPIO简介 GPIO&#xff0c;全称为通用输入输…

isaacgym(legged_gym)学习 (二)—— 设置环境地形

isaacgym(legged_gym)学习 &#xff08;二&#xff09;—— 设置环境地形 文章目录 isaacgym(legged_gym)学习 &#xff08;二&#xff09;—— 设置环境地形前言一、了解isaacgym中地形如何构成的二、自定义修改1.代码2.查看script/play.py 总结 前言 如何设置isaacgym中的环…

CISSP 第9章:安全脆弱性、威胁和对策

第九章 安全脆弱性、威胁和对策 9.1 评估和缓解安全脆弱性 9.1 硬件 处理器 执行类型 多任务处理&#xff1a; 同时处理两个或更多任务 多处理&#xff1a; 利用多个处理器完成一个应用程序的处理能力 多程序设计&#xff1a;通过操作系统对单个处理器上的两个任务进行协调&…

NPS 内网穿透安装

NPS 内网穿透安装 NPS分为服务端和客户端&#xff0c;对应的不同操作系统软件可以在GitHub RELEASES自行选择下载。 服务端搭建 由于个人非企业级使用&#xff0c;为了方便直接使用docker安装 1.docker运行 (注意需要提前下载conf文件&#xff0c;或者将镜像中文件copy出来…

.net 开源混淆器 ConfuserEx

官网&#xff1a;ConfuserEx 下载地址&#xff1a;Releases yck1509/ConfuserEx GitHub 使用参考&#xff1a;https://www.cnblogs.com/zhangzhi19861216/p/3937434.html

我是在一片骂声中成长起来的!!

曾几何&#xff0c;我的技术真的很烂&#xff0c;烂到技术主管每次都是点名要Review我的业务代码。 曾几何&#xff0c;我对技术沉淀没有一点自我意识&#xff0c;总是觉得临时抱一下佛脚就可以了。 曾几何&#xff0c;我也觉得技术无用&#xff0c;看看那些业务领导&#xf…

第5章 保护资产安全

5.1 对信息和资产进行识别和分类 数据安全生命周期管理是指数据保护始于数据被首次创建时&#xff0c;一直持续到该数据被销毁时。 实现生命周期保护的第一步是对信息和资产进行识别和分类。 组织常将分类定义纳入安全策略中。然后&#xff0c;人员根据安全策略要求适当地标记…

小黑迈出了应用开发第一步,通过武沛奇老师b站django入门课程了解了django,准备学习前端基础:django入门沛奇老师课程笔记

课程来源: https://www.bilibili.com/video/BV1NL41157ph/?p71&spm_id_from333.880.my_history.page.click 课程链接与学习资料推荐 django入门课程 https://www.bilibili.com/video/BV1NL41157ph/?p71&spm_id_from333.880.my_history.page.click django入门项目…

c语言-库函数qsort()初识

目录 前言一、qsort()的介绍及使用1.1 qsort()的介绍1.2 qsort()的使用1.2.1 使用qsort|()对整型数组按照升序排序1.2.2 使用qsort()对整型数组按照降序排序1.2.3 使用qsort()对结构体数组数据进行排序 二、利用冒泡排序模拟实现对任何数据进行排序2.1 冒泡排序2.2 模仿qsort()…

BurpSuite信息收集篇

BurpSuite信息收集篇 1.填充目标站点地图2.使用 Burp Suite 自动发现内容3.使用 Burp Suite 枚举子域1.填充目标站点地图 演示站点 ginandjuice.shop 1、抓取目标的请求包 2、在不关闭浏览器的情况下,转到目标>站点地图。请注意,已自动添加一个节点来表示目标域 3、右键…