栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

slam十四讲 01 CMakeLists.txt常用语句

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

slam十四讲 01 CMakeLists.txt常用语句

笔记来自高翔的《视觉SLAM十四讲》

备忘


目录

笔记备忘

1 源程序

2 调用库


1 源程序

主程序main.cpp

#include 

using namespace std;
int main(int argc, char** argv)
{
	cout << "Hellow" << endl;
	return 0;
}

库文件lib_hello.cpp

#include 

using namespace std;

void printHello()
{
	cout << "Hellow" << endl;
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project(helloSLAM)

add_executable(hellowslam main.cpp)  # (生成的文件名 源代码文件)

add_library(lib_hello lib_hello.cpp)   # (生成的文件名 源代码文件)生成静态库lib_hello.a

# 生成动态库  使用关键字SHARED
add_library(lib_shared_hello SHARED lib_hello.cpp)


# 静态库每次被调用会生成一个副本,共享库则只有一个副本,更省空间。
mkdir build
cd build
cmake ..   # relation
make       # call g++

2 调用库

上面生成的lib_shared_hello.so库文件是一个二进制压缩包,包含了编译好的二进制函数。为了让其他人调用,则需要提供头文件,只有有了头文件和库文件,则可以调用这个库

头文件lib_hello.h

#ifndef LIBHELLO_H_
#define LIBHELLO_H_

void printHello();

#endif

可执行文件来调用 use_hello.cpp

#include "lib_hello.h"


int main(int argc, char** argv)
{
	printHello();
	return 0;
}

CMakeLists.txt添加一个可执行程序的生成命令,链接到刚才使用的库上

add_executable(use_hello use_hello.cpp)   # 生成可执行文件use_hello
target_link_libraries(use_hello lib_shared_hello)  # 可执行文件链接到之前的库hello_shared

 如此,生成的可执行文件use_hello,便可以调用lib_shared_hello库中的代码。

./use_hello

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/628907.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号