CMake基础知识

一、基础知识

1、cmake简介

cmake 是一个跨平台的、开源的构建工具,用来编写跨平台(cross-platform)的构建规则(例如:makefile文件),通过这些规则来调用各个平台的编译器、链接器,生成各个目标(静态库,静态库,或者可执行)。cmake工具根据CMakeLists.txt 文件生成makefile文件,通过CMake可以产生可移植的makefile,大大简化自己动手写makefile时的巨大工作量。

2、make简介

makefile定义了一系列的规则来指定,根据Makefile文件编译源代码、连接、生成目标文件、可执行文件。makefile带来的好处就是–“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令。

3、.cmake文件介绍

说到cmake可能最先想到的就是CmakeLists.txt文件,但是在很多情况下,也会看到.cmake文件。.cmake文件是一个模块文件,可以被include到CMakeLists.txt中。通常情况下.cmake文件里包含了一些cmake命令和一些宏/函数,当CMakeLists.txt包含该.cmake文件时,当编译运行时该.cmake里的一些命令就会在该包含处得到执行,并且在包含以后的地方能够调用该.cmake里的一些宏和函数。

4、cmake优点

1)跨平台,使用平台无关的 CMakeLists.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。
2)自动生成、维护C/C++文件依赖关系。

5、Linux平台下使用cmake生成Makefile并编译的流程

1)编写 CMake 配置文件 CMakeLists.txt
2)执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile 。其中, PATH 是 CMakeLists.txt 所在的目录
3)使用 make 命令进行编译

注意:CMake允许“源码树内生成”(in-source build)和“源码树外生成”(out-of-source build)这两种工作方式。前者将会在CMakeLists.txt的同一目录下生成对应的Makefile脚本,目标文件以及结果;后者则是在不同的目录下执行编译生成的工作,源代码树则保持原样,十分有利于代码的版本更新,搜索管理,以及打包再发布。通常在src源码同级路径下创建build文件夹,进入build文件夹运行cmake … ,则会调用上级文件夹中CMakeLists.txt,编译所有的动作都会在build文件夹中保存,不会对源代码造成影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值