cmake

cmake

在cmake工程中,根据CMakeLists文件内容,组织源文件和库文件,用cmake命令生成makefile文件,然后用make命令根据makefile文件得内容编译整个过程。

command window编译时的命令

//编译cmake工程,建立一个build文件夹存放编译过程中产生的中间文件。
//在终端以此输入如下命令
mkdir build
cd build
cmake ..
make
//上述步骤完成编译,生成可执行程序的可执行文件
//接下来运行程序,重要!!!!
./main
//main为可执行程序名字,

当提供了库文件和对应的头文件才可以调用该库。
在Linux中,库文件分为静态库(以.a为后缀名)和共享库(以.so为后缀名),两者区别在于静态库每次被调用都会生成一个副本,而共享库则只有一个副本。
库文件是压缩包,含有编译好的二进制文件,我们并不知道里面到底是什么,所以需要提供头文件,说明库里有什么。

库文件中是没有main 函数的

//libHelloSLAM.cpp
#inculde<iostream>
using namespace;
void printhello()
{
	cout<<"hello SLAM"<<endl;
}
头文件更多的是定义变量,声明函数;库文件更多的是函数的定义实现
头文件
//libHelloSLAM.h
#ifndef LIBHELLOSLAM_H_//防止重复定义
#define LIBHELLOSLAM_H_
void printHello();
#endif
//添加可执行程序的生成命令,链接到生成的库
add_executable(useHello useHello.cpp)
//添加可执行文件,语法:add_executable(程序名 源代码文件)
target_link_libraries(useHello hello_shared)
//将程序链接到库文件,语法:target_link_libraries(程序名 库名)
ADD_LIBRARY基本语法:
ADD_LIBRARY(libname   [SHARED|STATIC|MODULE] [EXCLUDE_FROM_ALL]
                                             source1 source2 ... sourceN)
//libname是编译后的库文件名称 中间是选择共享/静态库文件  source1 source2等是编译成库文件的源代码
//EXCLUDE_FROM_ALL 参数的意思是这个库不会被默认构建,除非有其他的组件依赖或者手工构建                                  

参考高翔------视觉slam14讲
https://cmake.org/cmake/help/latest/guide/tutorial/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值