《视觉SLAM十四讲精品总结》1:使用CMake和库文件

1、简单的cmake 使用

CMakeLists.txt文件告诉cmake我们要对这个目录下的文件做什么事情。

# 声明要求的 cmake 最低版本
cmake_minimum_required( VERSION 2.8 )

# 声明一个 cmake 工程
project( HelloSLAM )

# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
add_executable( helloSLAM helloSLAM.cpp )

2、使用库

程序由源文件和头文件组成。

可执行程序想调用库函数中的函数,需要在CMakeLists.txt中把可执行程序链接到库文件中

# 将库文件链接到可执行程序上
target_link_libraries( useHello hello_shared )

1、源文件useHello.cpp

//头文件
#include "libHelloSLAM.h"


int main( int argc, char** argv )
{
   // 使用头文件中的 printHello() 函数
    printHello();
    return 0;
}

2、头文件libHelloSLAM.h

头文件说明库文件中有哪些函数。

// 上面的宏定义是为了防止重复引用这个头文件而引起的重定义错误
#ifndef LIBHELLOSLAM_H_
#define LIBHELLOSLAM_H_
//声明函数
void printHello();

#endif

库的生成

库文件源代码

//库文件void而不是main
#include <iostream>
using namespace std;

void printHello()
{
    cout<<"Hello SLAM"<<endl;
}

CMakeLists.txt添加一句

# 共享库
add_library( hello_shared SHARED libHelloSLAM.cpp )

3、CMakeLists.txt

# 声明要求的 cmake 最低版本
cmake_minimum_required( VERSION 2.8 )

# 声明一个 cmake 工程
project( HelloSLAM )

# 添加一个共享库
add_library( hello_shared SHARED libHelloSLAM.cpp )
# 可执行程序
add_executable( useHello useHello.cpp )
# 将库文件链接到可执行程序上
target_link_libraries( useHello hello_shared )

猜你喜欢

转载自blog.csdn.net/try_again_later/article/details/81486502