视觉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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值