Slam十四讲之第一讲和第二讲,实践编程基础

news2024/9/24 7:25:37

目录

    • 1.镜像寻找
      • ①方法1:百度网盘下载
      • ②方法2:在开源镜像网站上下载,
      • ③方法3:直接在Ubuntu官网下载
    • 2 在VMware中创建虚拟机并安装Ubuntu18.04
    • 3 安装VMware Tools
    • 4 初始系统中,部分软件的安装
      • 4.1 gcc 安装
      • 4.2 g++安装
      • 4.3 安装vim
      • 4.4 vim的简单操作
      • 4.5 cmake 安装
    • 5. cmake的基础使用
      • 1. CMakeLists.txt文件
      • 2.执行cmake 和 make
      • 3.当文件中有使用库时
    • 6.安装IDE 根据老师的安装软件为KDevelop的使用
    • 6.安装IDE 根据老师的安装软件为KDevelop的使用

1.镜像寻找

Ubuntu18.04的镜像文件下载方式有很多(网上到处都是),这里提供几种常用的,
我这边下载速度对比结果是:Ubuntu官网 > 清华镜像源 > 阿里云

①方法1:百度网盘下载

链接:https://pan.baidu.com/s/1bx3k4T-z_EcglbyAkIiv5A 提取码:kw9d

②方法2:在开源镜像网站上下载,

一个是阿里云开源镜像站,进入后选择18.04的iso文件下载即可,如图:

在这里插入图片描述

另一个是清华开源软件镜像站,进入后选右侧的“获取下载连接”,如图:

在这里插入图片描述

进去找到Ubuntu后,选择18.04.6桌面版,下载即可

③方法3:直接在Ubuntu官网下载

官方下载地址👈,官方提供了PC版和服务器版两种镜像文件,我们是安装在个人电脑上,所以选择64-bit PC(AMD64) desktop image;顺便说明一下,这里标的是AMD64,但是也支持EM64T架构,所以无论你的电脑是AMD处理器还是Intel处理器,都可以使用

在这里插入图片描述

2 在VMware中创建虚拟机并安装Ubuntu18.04

有了VMware软件和Ubuntu镜像文件就可以在虚拟机中安装linux系统了;

首先,打开VMware,选择创建虚拟机:

在这里插入图片描述

选择典型类型配置,下一步:

在这里插入图片描述

选择稍后安装操作系统,下一步:

在这里插入图片描述

选择linux操作系统,版本选择Ubuntu64位:

在这里插入图片描述

给虚拟机起一个名字,并选择想要的安装路径:

在这里插入图片描述

给虚拟机分配磁盘大小,这里设为20GB(这个虚拟机磁盘的最大可达到的值,不是一开始就占用20G):

在这里插入图片描述

选择自定义硬件:

在这里插入图片描述

这里可以设置给虚拟机分配内存的大小、处理器的数量和处理器的内核多少,根据自己需求定,这里选择默认值

在这里插入图片描述

最重要的CD的配置,选择新CD/DVD(SATA),在左侧选择“使用ISO镜像文件”,并填入刚才下好的镜像文件路径,

在这里插入图片描述

然后关闭自定义硬件界面,选完成,到这里就在VMware中创建了一个Ubuntu虚拟机,选择“开启此虚拟机”开机:

在这里插入图片描述

注意,在开机时,要把网络适配器(右下角第三个图标)设置为“断开链接”
开机后,在这个界面选择语言,点install Ubuntu

在这里插入图片描述

选择键盘布局为“中文”:

在这里插入图片描述

选择正常安装,然后继续:

在这里插入图片描述

选择安装类型“清除磁盘”,然后“现在安装”(这里清除的是虚拟磁盘,不会影响本机硬盘内容)

在这里插入图片描述

选继续即可

在这里插入图片描述

选择下时区,然后继续:

在这里插入图片描述

设置用户名和进入系统的密码:

在这里插入图片描述

等待安装,然后点击“现在重启”:

在这里插入图片描述

在这里插入图片描述

在选项卡中选择“重新启动客户机”,即可进入系统:

在这里插入图片描述

设置下分辨率,按win键,输入settings,找到设置,并在设备里面找到显示

在这里插入图片描述

在这里插入图片描述

找到显示,这里将分辨率设置为1680*1050,点应用即可

在这里插入图片描述

3 安装VMware Tools

VMware Tools的作用:能简化主机与虚拟机之间的操作

  1. 从虚拟机内移出鼠标不用再按Ctrl + Alt,可直接移出
  2. 有了VMware Tools,主机与虚拟机可直接通过拖拽传文件,实现文件复制
  3. 有自动适应窗口功能,能使虚拟机系统分辨率随软件窗口大小改变而变化
  4. 相当于给虚拟机安装了显卡驱动,提高了虚拟机分辨率

在VMware选项栏中,找到“安装VMware Tools”选项,点击安装: 我这是虚拟机里面有了,就变成取消了

在这里插入图片描述

在文件夹中找到Vmware tools压缩包,将其复制到主目录下,然后点提取:

在这里插入图片描述

解压到哪个路径自己选一个,这里解压在主目录下

然后打开终端,键入ls,查看目录下文件(如果上一步没有将Vmware Tools解压到主目录下,则需要通过cd命令先切换目录),
然后cd命令切换到子目录vmware-tools-distrib

在这里插入图片描述

键入sudo ./vmware-install.pl,输入密码,然后输入y(后面全部输入y或按enter键即可) 最后是一个no

然后重启,再用复制粘贴

4 初始系统中,部分软件的安装

4.1 gcc 安装

在终端查看gcc版本,发现系统未自带gcc,键入sudo apt install gcc 下载安装gcc:

在这里插入图片描述

4.2 g++安装

在这里插入图片描述

4.3 安装vim

在这里插入图片描述

4.4 vim的简单操作

打开vim后,按i键是 插入模式,进入操作。

退出编辑是,esc键,然后按shift+:

再输入wq保存退出

4.5 cmake 安装

下载最新版源码包
采用wget命令下载:

wget https://github.com/Kitware/CMake/releases/download/v3.20.5/cmake-3.20.5.tar.gz

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MiBQ2fIO-1689235814867)(E:\文档\图片\SLAM\38.PNG)]

解压源码
在cmake源码所在文件夹中打开命令终端,解压文件:

tar zxvf cmake-3.20.5.tar.gz

进入解压目录安装
在这里插入图片描述

执行[bootstrap]

./bootstrap

出现以下错误

在这里插入图片描述

则使用以下指令解决问题:

sudo apt-get install build-essential

编译构建

make

安装中

在这里插入图片描述

安装成功!!!

在这里插入图片描述

安装

在这里插入图片描述

查看cmake版本,安装成功

在这里插入图片描述

5. cmake的基础使用

1. CMakeLists.txt文件

在这里插入图片描述

2.执行cmake 和 make

执行cmake之前的文件

在这里插入图片描述

当编写完 CMakeLists.txt文件后,执行cmake

在这里插入图片描述

.代表,cmake执行后,生成一堆中间文件都保存 在当前目录

在这里插入图片描述

当执行完cmake之后 生成文件中 有Makefile文件

然后再执行 make

在这里插入图片描述

这样就生成helloSLAM可执行文件

在这里插入图片描述

但是 cmake . 的时候生成许多中间文件,这样把CMakeLIsts.txt和main.cpp和中间文件放在一起,非常影响,最常规的做法是,cmake生成这些的中间文件单独放到一个build文件夹中。

在这里插入图片描述

这样上层文件夹依旧是干净的

在这里插入图片描述

这样在build文件夹里面,cmake 和 make

在这里插入图片描述

3.当文件中有使用库时

先设置CMakeLists.txt文件

在这里插入图片描述

然后再在build文件夹中 cmake make 就会生成一个 libhello.a文件,这个就是我们得到的库

在这里插入图片描述

Linux中,库文件分成静态库共享库两种,静态库以 .a 作为后缀名,共享库以 .so 结尾。所有库都是一些函数打包后的集合,差别在于静态库每次被调用都会生成一个副本,而共享库则只有一个副本,更省空间。如果想生成共享库而不是静态库,只需调用以下语句即可。

add_library(hello_shared SHARED libHelloSLAM.cpp)

此时得到的文件就是libhello_shared.so

当你cpp文件引用其他的库文件中的函数时,CMakeLists.txt文件的

在这里插入图片描述

6.安装IDE 根据老师的安装软件为KDevelop的使用

在安装KDevelop过程中可能出现下面错误:dpkg被中断,您必须手工运行’sudo dpkg --configure -a’

在这里插入图片描述

解决方法:

​ 根据提示输入命令即可

sudo dpkg --configure -a

然后再运行

sudo apt-get install kdevelop

6.安装IDE 根据老师的安装软件为KDevelop的使用

在安装KDevelop过程中可能出现下面错误:dpkg被中断,您必须手工运行’sudo dpkg --configure -a’

解决方法:

​ 根据提示输入命令即可

sudo dpkg --configure -a

然后再运行

sudo apt-get install kdevelop

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Word 插件实现读取excel自动填写

日常工作中碰到需要将EXCEL的对应数据记录填写到word文档对应的位置,人工操作的方式是: 打开exel表—>查找对应报告号的行—>逐列复制excel表列单元格内容到WORD对应的位置(如下图标注所示) 这种方法耗时且容易出错。实际上…

vcomp140.dll丢失怎样修复?多种方法教你修复

vcomp140.dll丢失算是一个比较常见的异常事件,在使用电脑的时候,有时候弹窗出现由于找不到vcomp140.dll,无法继续执行代码等,这种都是属于vcomp140.dll文件丢失,今天我们主要针对这个情况来给大家说说vcomp140.dll丢失…

自动化测试工具大盘点

本系列文章我们将带大家一起了解一下互联网大厂中通科技的自动化测试平台的搭建历程,从以下四个方面展开介绍:为什么要做这样一个统一的自动化测试平台?是如何做到统一的?平台上线后的收益,最后一部分会给大家分享一下…

CSDN 周赛 62 期

CSDN 周赛 62 期 参赛体验选择题1234编程题1、题目名称:覆盖面积2、题目名称:机器猫参赛体验 这次没有出填空题,好评。 选择题四个,基本上,对数据库比较熟悉的人,应该都可以全部答对的。 编程题两个,嗯。。。。就是上周偷偷摸摸更新出来的四个题目之二。还以为不会出…

levelx norFlash

levelx 文章目录 OverviewQuoteBriefDefinitionTheory 实现原理1.初始化流程2.写操作3.读操作4.回收函数 Overview 实现了flash的均衡摩擦,有针对nor 和 nand的接口 配合azure RTOS 以及xfile比较合适,单独使用不是很友好 Quote https://learn.micro…

C# Sdcb.Paddle2Onnx Paddle模型通过C#转换为ONNX模型

https://github.com/sdcb/PaddleSharp/blob/feature/2.5/docs/paddle2onnx.md 效果 项目 代码 using Sdcb.Paddle2Onnx; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing…

相对绝对定位父元素不设置宽度,根据子元素撑开(white-space: nowrap;)

要做一个如下的弹窗,很简单。但是当要切换成多语言或者数据是动态的话(title可能会很长),那么弹窗固定宽度就不适用了。 有可能会出现下图的情况 也有可能出现下面的情况,文字被换行了(有时候这种情况也是…

每日一练 | 华为认证真题练习Day77

1、如下图所示,主机A和主机B使用哪种网络设备可以实现通信? A. 路由器 B. 集线器 C. HUB D. 二层交换机 2、路由器输出信息如下,下列说法错误的是? A. Ethernet0/0/0接口的MTU值为1480 B. Ethernet0/0/0接口物理链路正常 C.…

5分钟体验墨迹天气API设计与调试,来看看你关心的城市天气吧~

1 准备工作 请务必完成华为云账号注册和实名认证&#xff0c;否则无法进行实操实验。 Step 1 >>>点我立即注册华为云账号<<< Step 2 >>>点我完成实名认证<<< 1.1 登录访问API Arts主页 1、点击访问API Arts主页&#xff0c;点击“申请…

项目管理工具大比拼:全方位评估各家优势

在现代企业中&#xff0c;项目管理已经成为了一个不可或缺的部分。而具有高效、易用、多样化功能的项目管理软件能够帮助企业更好地管理项目和任务&#xff0c;并提高团队生产力和效率。因此&#xff0c;在选择适合的项目管理软件时&#xff0c;需要对不同软件进行全方位比较和…

〖码银送书第三期〗《Python机器学习:基于PyTorch和Scikit-Learn》

前言 近年来&#xff0c;机器学习方法凭借其理解海量数据和自主决策的能力&#xff0c;已在医疗保健、 机器人、生物学、物理学、大众消费和互联网服务等行业得到了广泛的应用。自从AlexNet模型在2012年ImageNet大赛被提出以来&#xff0c;机器学习和深度学习迅猛发展&#xf…

1. HTML5的新特性

HTML5的新增特性主要是针对于以前的不足, 增了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是IE9以上版本的浏览器才支持, 如果不考虑兼容性问题,可以大量使用这些新特性。 1.1 HTML5 新增的语义化标签 ●<header> : 头部标签 ●<nav&…

优思学院|工厂如何从零开始开展TPM管理?

TPM管理的实施步骤&#xff0c;因应各企业的情况和特性&#xff0c;实施的方法会有点差异&#xff0c;但一般的基本步骤是以下表所表示。 这16个TPM管理的基本步骤&#xff0c;是将各企业之长处更加的发挥&#xff0c;且为了达成重点目标&#xff0c;组织全体的实施方法。 大…

【Spring | 资源处理】

Resource Resource 接口介绍核心方法常见接口优缺点 内置Resource实现UrlResourceClassPathResourceFileSystemResourcePathResourceServletContextResourceInputStreamResourceByteArrayResource Resource 接口 不幸的是&#xff0c;Java的标准Java.net.URL类和各种URL前缀的标…

Buck电路的原理及器件选型指南

Buck电路工作原理 电源闭合时电压会快速增加&#xff0c;当断开时电压会快速减小&#xff0c;如果开关速度足够快的话&#xff0c;是不是就能把负载&#xff0c;控制在想要的电压值以内呢? 假设12V降压到5V&#xff0c;也就意味着&#xff0c;MOS管开关需要42%时间导通&#…

java每日一题:手动触发垃圾回收(GC)

面试官: 首先&#xff0c;我想问一下&#xff0c;你能向我解释一下"手动触发Java垃圾回收"的过程吗&#xff1f;&#x1f914; 面试者: 在Java中&#xff0c;垃圾回收是自动进行的&#xff0c;由Java虚拟机&#xff08;JVM&#xff09;负责管理。但是&#xff0c;有…

Linux进程(一)---深入了解进程的概念及状态

目录 什么是进程 如何管理进程 描述进程 PCB到底是什么&#xff1f; PCB的内容分类 组织进程 查看进程 ps命令 通过系统调用获取进程标示符 getpid() getppid() 通过系统调用创建进程-fork初识 进程状态 运行态(R) 阻塞态(S) 阻塞态 挂起态 和就绪态的区别 …

【UE4 C++】07-角色运动设置

效果 可以看到我们可以通过WASD控制角色前后左右移动&#xff0c;通过鼠标控制摄像机旋转朝向。 步骤 1.在虚幻商城中搜索“Gideon”&#xff0c;将该免费资源添加到工程中&#xff08;大概2.6G&#xff09; 2. 打开之前创建的“PlayerCharacter” 选中网格体组件&#xff0…

华为OD机试真题 Java 实现【不开心的小朋友】【2023 B卷 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 大家好&#xff0c;我是哪吒。 做技术&#xff0c;我是认真的&#xff0c;立志于打造最权威的华为OD机试真题专栏&#xff0c;帮助那些与我有同样需求的人&#xff…

C# 参数传递(引用类型参数)

目录 一&#xff0c;引言 二&#xff0c;引用类型参数作为值参数传递 三&#xff0c;引用类型参数作为引用参数传递 一&#xff0c;引言 方法中参数的传递方式主要有值参数传递和引用参数传递&#xff08;ref&#xff0c;out&#xff09;&#xff0c;而参数有可以分为值类型…