SLAM学习笔记--CMake下编译成库的操作(一)

整理19年10月月所做的笔记,当时没有记录文字的出处.仅供本人学习使用,如有侵权,立即删除.

1.进入工作空间

cd slambook

2.创建源文件和头文件的文件夹

mkdir include src

3.创建源文件和头文件

touch include/Hello.h src/Hello.cpp
(注意:touch创建不存在的文件,同时还具有改变时间戳的功能,只是这里没用到;另外Hello.cpp后缀要写对,不能写成.c,这样会导致编译失败).

4.进入Hello.h,编写头文件

vim include/Hello.h
(鼠标输入"i",开始编辑,点击"Esc",进入命令模式,输入":wq",保存退出,或":q",退出)
代码如下:
#pragma once //保证文件只被编译一次

void SayHello(); // 声明函数
(头文件中只需要声明函数,不需要实现)

5.进入Hello.cpp,定义函数

vim src/Hello.cpp
代码如下:
#include “Hello.h”
#include

using namespace std;

void SayHello()
{
cout<<“Hello SLAM”<<endl;

6.编写主函数,它的头文件在Hello.h中定义,它的实现在Hello.cpp中定义

vim main.cpp
代码如下:
#include <Hello.h>
using namespace std;

int main(int argc, char**argv)
{

SayHello();
return 0;

}

7.定义哪些文件编译成库,哪些文件编译成可执行文件

vim CmakeLists.txt
代码如下:
project(helloSLAM)

include_directories(“include”) //指明"include"是头文件引用的地方,头文件的依赖关系cmake自动处理

#only source files.
add_library(libHello src/Hello.cpp) //生成库,库的名称为libHello,源文件在Hello.cpp中

add_executable(sayHello main.cpp) //生成可执行文件,文件名叫sayHello
target_link_libraries(sayHello libHello) //链接库, sayHello调用 libHello库

8.cd build //中间文件生成在build文件中,不会跑到上层目录

9.cmake …

10. make

这是,在build文件夹中会生成一个libHello.a文件,这就是我们得到的库.

11. ./sayHello //调用函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值