SLAM库基础学习笔记

#HelloSLAM Learing
ch2/HelloSLAM.cpp //新建一个cpp文档

#include <iostream>
using namespace std;

int main( int argc,char** argv)
{
cout<<"Hello SLAM!"<<endl;
return 0;
}

cpp中有main可执行函数,可以通过进行直接编译成可执行文本

g++ helloSLAM.cpp

编译完成后会生成一个a,out的可执行文件.通过./进行执行程序输出结果

./a.out
Hello SLAM!

2使用cmake
首先在ch2中新建一个CMakeLists.txt文本文档,文件名不可写错不可更改.

vim CMakeLists.txt
cmake_minium_required( VERSION 2.8  )
project( helloSLAM )
add_executable( helloSLAM helloSLAM.cpp ) //将上面建立的helloSLAM.cpp链接到helloSLAM上

保存退出,编译执行 使用build分离
cmake ..
make
./helloSLAM   //将会输出helloSLAM.cpp内函数的内容

2.4 使用库

新建一个libHelloSLAM.cpp文本文件,但是内部不含有main函数,意味着库中没有可以执行的文件

~ch2/libHelloSLAM.cpp
#include <iostream>
using namespace std;
void printHello()
{
cout<<"Hello SLAM"<<endl;
}

将上文本文件编译成一个库

add_library( hello libHelloSLAM.cpp )
.a  静态库

add_library( hello_shared SHARED libHelloSLAN.cpp )
.so 共享库

调用库还需要一个头文件ch2/libHelloSLAM.h

#ifndef LIBHELLOSLAM_H_
#define LIBHELLOSLAM_H_
void printHello();
#endif

现在可以使用这个库啦,需要写一个执行程序,调用这个函数

vim useHello.cpp

#include "libHelloSLAM.h"
int main( int argc, char** argv )
{
printHello();
return 0;
}

然后在CMakeList.txt中添加一个可执行程序的上生成命令,链接到刚才使用的库上:

add_executable( useHello useHello.cpp)
target_link_libraries( useHello hello_shared )

总结:
1.cmake是为了不用每个可执行文件(带main).cpp需要通过g++进行编译,而是通过cmake函数的
cmake .
make
直接全部编译,在多个程序组成非常有用,节约劳动
2.
调用一个库需要头文件和库文件
头文件.h: 表明这个库里有什么函数 = =里面有个printHello函数
库文件.a或者.so: 表达库里函数怎么实现的 = = printHello函数的具体怎么编译的
3.
调用库到自己的程序中
写一个执行文件(带main).cpp
程序是由头文件和源文件组成;
带有main函数的源文件编译成可执行程序,其他编译成库文件;
如果可执行程序想调用库文件中的函数,它需要参考该库提供的头文件的格式.同时要把可执行程序链接到库文件上.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值