视觉Slam十四讲笔记

news2024/12/27 0:22:51

视觉SLAM十四讲 ch1~2

  • 虚拟机部分
    • 指令解析
    • 在其他文件中进行引用该库
    • 编译器
    • 参考链接:

虚拟机部分

CMakeList.txt文件是cmake用来生成Makefile文件需要的一个描述编译链接的规则文件

指令解析

(1)PROJECT(projectname [CXX] [C] [Java]):

该函数定义工程名字,并指定了工程的语言,支持语言的列表可以省略,默认情况下表示支持所有语言,并隐式定义了两个cmake的变量

    PROJECT_BINARY_DIR:执行cmake的目录

    PROJECT_SOURCE_DIR:工程的根目录

(2)add_executable(可执行文件名 1.cpp 2.ppp …)
添加可执行文件,其中可执行文件需要用到1.cpp和2.cpp 工程会给1.cpp和2.cpp编译生成一个可执行文件
调用main.cpp文件生成helloslam可执行程序
当前文件下有CMakeList.txt和main.cpp两个文件,通过指令:“cmake . ”表示编译当前目录,会生成makefile文件,直接调用make对整个工程进行编译。
在这里插入图片描述
优点:由重写一行一行c++,变成只维护一个list文件。
在这里插入图片描述
使用cmake . 生成一堆中间文件,这些中间文件我们并不是很想要,需要删除:“rm .rf"
解决办法:
1、新建一个文件夹 mkdir build
2、进入文件夹内,对上层文件进行编译 “cmake …”
产生的中间文件都在build里面,不想要直接删除build文件夹
在这里插入图片描述
在这里插入图片描述

在其他文件中进行引用该库

库文件hello.cpp其中包含函数printHello(),
在这里插入图片描述

1、add_library(生成的库名称 STATIC/SHARED 源文件.cpp)
将源文件生成 静态/动态 库文件 STSTIC 表示静态库最终会编入到可执行文件中,SHARED(常见参数)表示动态库(又称共享库)方式
在这里插入图片描述
编译后生成libhello.a的文件,可以通过其调用hello.cpp中的函数
在这里插入图片描述
为了调用我们需要一个头文件函数,hello.h,其中对printHello()函数进行声明
在这里插入图片描述
在hello.h中声明函数,在hello.cpp中提供函数的实现。
在这里插入图片描述
hello.h和hello.cpp就构成了一个完整的库,这个库就可以在别的程序中进行调用。
编译后,写一个简单的函数进行调用。
在这里插入图片描述
vim useHello.cpp创建文件引用
在这里插入图片描述
可执行程序怎么写:
1、vim CMakeList.txt
2、添加可执行文件useHello
3、将可执行文件链接到hello库上面。

target_link_libraries (库/可执行文件 library1 library2 …)
为库或者可执行文件添加需要链接的库

在这里插入图片描述

编译器

sudo apt-get install kdevelop

直接支持cmake的c++
自动生成一个build目录,调用cmake进行编译。
在这里插入图片描述

参考链接:

CMakeLists.txt详解:https://blog.csdn.net/m0_53685032/article/details/126988487.

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

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

相关文章

力扣(LeetCode)427. 建立四叉树(2023.03.01)

给你一个 n * n 矩阵 grid ,矩阵由若干 0 和 1 组成。请你用四叉树表示该矩阵 grid 。 你需要返回能表示矩阵的 四叉树 的根结点。 注意,当 isLeaf 为 False 时,你可以把 True 或者 False 赋值给节点,两种值都会被判题机制 接受…

Elasticsearch进阶之(核心概念、系统架构、路由计算、倒排索引、分词、Kibana)

Elasticsearch进阶之(核心概念、系统架构、路由计算、倒排索引、分词、Kibana) 1、核心概念: 1.1、索引(Index) 一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引&…

能源消耗监测管理系统,在建筑节能中起到哪些重要作用?

能源是一切活动的基础更是社会经济发展的命脉,但随着经济的建设,能源资源的消耗也越来越大,其中建筑是最大的消耗者。水、电、气等能源的消耗量逐年增长,这种能源并不是取之不尽用之不竭的,能源的日益紧张和环境恶化&a…

IM即时通讯开发MQ消息队列

消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一。 消息从发送者到接收者的典型传递方式有两种: 1)一种我们可以称为即时消息&#xff1a…

【FATE联邦学习】Fateboard的使用

fateboard文档 https://fate.fedai.org/fateboard/ github Fateboard文档 https://github.com/FederatedAI/FATE-Board/blob/master/README-CN.md 背景 Fateboard是FATE框架的任务看板。 在配置FATE时,Fateboard一般是被安装好了的,安装过程查看这里 A…

你知道如何获取全国省市街道区域信息吗?

随着互联网和快递行业的飞速发展,在中国广袤的大地上,全国行政区域规划星罗棋布,要查询一个行政单元如果不运用科技的手段查询可是非常的不易,现在,全国行政区划查询API的作用越来越大,它可以帮助我们对地址…

比特数据结构与算法(第四章_下)二叉树OJ(力扣:144,965,104,226,100,572)

144. 二叉树的前序遍历难度简单给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root [1,null,2,3]输出:[1,2,3]示例 2:输入:root [ ]输出:[ ]示例 3:输入&#…

【react】react18的学习

一、安装 $ create-react-app [Project name]默认支持sass 二、核心依赖 react:react 核心 react-dom:用于开发渲染web 应用; react-scripts:封装webpack服务; "start": "react-scripts start&quo…

网络应用之html 的基本结构

html 的基本结构学习目标能够写出html的基本结构1. 结构代码<!DOCTYPE html><html><head><metacharset"UTF-8"><title>网页标题</title></head><body>网页显示内容</body></html>第一行<!DOCTYPE ht…

认识Cesium旋转大小变量

前文代码中有如下&#xff1b;矩阵乘以旋转大小&#xff0c;还放入mat&#xff1b; Cesium.Matrix4.multiply(mat, rotationX, mat); 初看以为rotationX是一个数值&#xff0c;因为矩阵可以和数相乘&#xff1b; 但是看它的代码&#xff0c;rotationX是由一长串代码获得的&a…

计算机网络高频知识点(二)

目录 一、三次握手 二、为什么是三次握手而不是两次握手 三、四次挥手 四、挥手为什么需要四次 五、websocket 1、是什么 2、原理 3、websocket与http的关系 4、特点 六、http结构 七、HTTP头都有哪些字段 八、http1.0和http1.1&#xff0c;还有http2有什么区别 九…

同样做软件测试,和月薪30K 的学弟聊了一晚上,我心态崩了...

过去的一年&#xff0c;你攒到钱了吗&#xff1f; 在一条话题为“今年你存了多少钱”的微博下&#xff0c;网友们贡献了近 3000 条“成绩单”&#xff0c;大多数称自己没攒到钱&#xff0c;甚至负债累累。 攒钱&#xff0c;为什么就这么难呢&#xff1f; 工资水平赶不上房价…

TDengine | 03 | TDengine2.4.0监控部署

1 前提条件 1.1 服务 TDengine 集群已经部署并正常运行taosAdapter 已经安装并正常运行TDengine 集群 REST API 地址&#xff0c;如&#xff1a;http://tdengine:6041TDengine 集群认证信息&#xff0c;做监控用的用户名和密码 1.2 版本 Linux : Ubuntu 18.04.5 LTS TDengi…

MySQL主从复制+读写分离详细方案

MySQL主从复制读写分离详细方案一、MySQL主从复制1.1mysql的复制类型1.2mysql主从复制的工作过程1.3MySQL的四种同步方式1.3.1异步复制&#xff08;Async Replication&#xff09;1.3.2同步复制&#xff08;Sync Replication&#xff09;1.3.3半同步复制&#xff08;Semi-Sync …

2023上半年软考中/高级报名+学习备考+考试重点

软考是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职称资格考试。 系统集成…

CentOS7.6快速安装Docker

快速安装 官网安装参考手册&#xff1a;https://docs.docker.com/install/linux/docker-ce/centos/ 确定你是CentOS7及以上版本,yum是在线安装! [rootVM-4-5-centos ~]# cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core)接下来您只管自上向下执行命令即可&#x…

阿里云服务器ECS适用于哪些应用场景?

云服务器ECS具有广泛的应用场景&#xff0c;既可以作为Web服务器或者应用服务器单独使用&#xff0c;又可以与其他阿里云服务集成提供丰富的解决方案。 云服务器ECS的典型应用场景包括但不限于本文描述&#xff0c;您可以在使用云服务器ECS的同时发现云计算带来的技术红利。 阿…

【项目】实现对接京东财务余额管理页面

目录需求实现后端京东财务余额Controller京东财务余额Service前端index.vuejdbalance.jsapi/jdbalance.js效果需求 通过调京东财务余额接口&#xff0c;在项目中开发相应管理页面。 实现 后端 因为京东的接口返回值里面已经有分页的参数了&#xff0c;因此会和平常自己写分…

【竞赛/TPU】算能TPU编程竞赛总结

如果觉得我的分享有一定帮助&#xff0c;欢迎关注我的微信公众号 “码农的科研笔记”&#xff0c;了解更多我的算法和代码学习总结记录。或者点击链接扫码关注【竞赛/TPU】算能TPU编程竞赛总结 1 基础知识 1.1【Ubuntu】 Ubuntu操作系统中有很多不同的文件夹&#xff0c;每个…

论文阅读——FECANet:应用特征增强的上下文感知小样本语义分割网络

代码&#xff1a;NUST-Machine-Intelligence-Laboratory/FECANET (github.com) 文章地址&#xff1a;地址 文章名称&#xff1a;FECANet: Boosting Few-Shot Semantic Segmentation with Feature-Enhanced Context-Aware Network 摘要 Few-shot semantic segmentation 是学习…