cmake简单使用-生成库

上一篇写了个最最最简单的cmake使用方式。这篇增加生成库的内容。

在C++中,并不是所有的代码都会被编译成可执行文件。只有带main()函数的文件才会生成可执行文件。而另外的很多代码只是想打包成一坨,以供其他程序调用(比如你写了一个牛逼的双色球预测函数,别人才不管你怎么写的,只要能调用就好了!!),这一坨就叫

根据C++我们知道,一个库需要有头文件和库文件。我们来写一个简单的库:

头文件为libHelloSLAM.h

//头文件libHelloSLAM.h

#ifndef LIBHELLOSLAM_H_
#define LIBHELLOSLAM_H_

void printHello();

#endif

很简单,头文件只需要包含函数的声明即可~

库文件为libHelloSLAM.cpp

//库文件libHelloSLAM.cpp

#include <iostream>
using namespace std;

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

也很简单,提供了一个printHello()函数,如果你经常打印这句话的话,就不用每次都自己写了,直接调用这个函数就好了。

好,库写完了,还需要调用库的测试程序,也就是调用这个库的可执行程序。
测试程序为useHello.cpp

//可执行程序useHello.cpp

#include "libHelloSLAM.h"

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

最后,程序都写好了,既然我们要用cmake,那CmakeLists.txt必不可少!

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

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

# 设置编译模式为Debug模式
set( CMAKE_BUILD_TYPE "Debug" )

# 生成一个静态库,会生成一个libhello.a文件
add_library( hello libHelloSLAM.cpp )
# 生成一个共享库,会生成一个libhello_shared.so文件
add_library( hello_shared SHARED libHelloSLAM.cpp )

# 生成可执行文件useHello
add_executable( useHello useHello.cpp )

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

这里来看一下CmakeLists.txt,

add_library()指令会生成库:
add_library( hello libHelloSLAM.cpp )生成静态库、
add_library( hello_shared SHARED libHelloSLAM.cpp )添加 SHARE 后,生成共享库。

有了库之后,需要链接,
target_link_libraries()指令将目标文件链接到库文件上。
target_link_libraries( useHello hello_shared )这里为链接到共享库。

可以发现,add_开头的指令,都会生成东西,add_library生成库,add_executable生成可执行文件。

OK,一切准备妥当,此时文件夹中是这样的:
这里写图片描述
没啥问题,继续我们就可以四步走战略:

mkdir build
cd build
cmake ..
make

cmake..之后,我们看一下build文件夹中有什么(原文件夹中只是多了个build文件夹,没啥看头):
这里写图片描述
发现,cmake阶段生成了几个文件,当然最重要的就是MakeFile,不过静态库.a文件和共享库.so此步并没有生成。

好,继续make
这里写图片描述
我们需要的静态库libhello.a、共享库libhello_shared.so、可执行文件useHello都出来了!

运行useHello测试一下:
这里写图片描述
OK~~~没毛病!

从中我们能看到,cmake阶段真的只是去生成makefile文件,所有的编译链接都是有了makefile之后,在make指令下完成的!!!

### 回答1: cmake-3.21.0-windows-x86_64.msi是一个用于Windows系统的CMake安装程序文件。CMake是一个开源的跨平台构建工具,可以自动生成适用于多种系统和编译器的构建脚本。 安装CMake可以简化项目的构建过程,减少手动配置和管理的工作量。通过CMake,开发者可以方便地指定项目结构、编译器选项、依赖项、构建目标等信息,从而生成可执行文件、和各种构建产物。 CMake的另一个优势是其强大的扩展性,可以轻松地编写自定义模块和插件来满足特定的构建需求。 对于Windows平台的开发者,CMake-3.21.0-windows-x86_64.msi是一个极为方便的安装程序,可以快速的安装并配置好CMake,并且它支持64位Windows系统,可以更好地应对现代硬件的需求。开发者可以从官方网站下载该文件,并按照安装向导完成安装即可。 ### 回答2: cmake-3.21.0-windows-x86_64.msi是一个用于安装CMake软件的安装包,适用于Windows 64位操作系统。CMake是一个跨平台的自动化构建工具,它可以通过简单的配置文件生成不同平台下的makefile或者项目文件,从而实现项目的构建。CMake支持多种编译器、多种操作系统和各种开发工具链,使得跨平台开发更加方便。 通过下载cmake-3.21.0-windows-x86_64.msi并安装,用户可以轻松地使用CMake进行项目构建。安装完成后,用户可以通过命令行或者GUI界面进行项目的配置和生成CMake支持多种编程语言,包括C、C++、Python等,可以生成静态、动态、可执行文件等多种形式的输出文件。 总之,cmake-3.21.0-windows-x86_64.msi是一个非常实用的工具包,它可以帮助开发者实现跨平台开发,快速构建项目,提高开发效率。如果你是一名开发人员,那么不妨尝试一下CMake,它一定会让你的工作更加轻松。 ### 回答3: CMake是一个跨平台的自动化构建工具,用于管理C++项目的编译过程。最新版本为CMake 3.21.0,在Windows平台上提供了一个x86_64的安装包cmake-3.21.0-windows-x86_64.msi。这个安装包可以在64位Windows系统上安装CMake并提供与构建工具集成的实用工具。CMake使用可以大大简化C++项目的编译,特别是对于跨平台项目而言。此外,CMake易于配置和可扩展,使它变得特别流行。它支持各种编译器和操作系统,可以进行快速和高效的自动化构建和测试,并且已广泛地使用于各种开源和商业项目当中。总之,cmake-3.21.0-windows-x86_64.msi是一个非常有用的工具,支持在64位Windows系统上构建C++项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值