What Cmake

Cmake项目构建工具

就是组织和管理工程代码的工具

目的:使项目代码层次结构清晰易读,对以后的维护工作大有裨益

决定代码的组织方式及其编译方式,也是程序设计的一部分,cmake和autotools正是makefile的上层工具,它们的目的正是为了产生可移植的makefile,并简化自己动手写makefile时的巨大工作量.

写makefile通常依赖于当前的编译平台,并且编写makefile的工作量比较大.解决依赖关系时也容易出错.因此对于大多数项目,应当考虑使用更自动化一些的cmake或者autotools来生成makefile,而不是上来就动手编写.

特点:

1 开放源代码,使用类BSD许可发布;

2 跨平台,并可生成native编译配置文件,在linux/unix平台,生成makefile,在苹果平台,可以生成xcode,在windows平台,可以生成msvc的工程文件;

3 能够管理大型项目;

4 简化编译构建过程和编译过程.cmake的工具链非常简单:cmake+make.

5 高效率;

6 可拓展.

安装:

linux的ubuntu下安装cmake
下载源码包:
http://www.cmake.org/cmake/resources/software.html

随便找个目录安装,别在/tmp等tmpfd文件系统的目录下就行

tar -xvfz cmake-2.6.4.tar.gz
cd cmake-2.6.4

依次执行:
./bootstrap
这一步会挺久的,大概5分多种

make
make也挺久的

make install

cmake会默认安装在/usr/local/bin下面

从”hello world”开始

1 在opt/wkplace/下面新建hello目录;

2 在该hello目录下面建立一个main.c文件,内容就打印hello world即可;

3 在该hello目录下面新建一个文件CMakeList.txt.这个就是cmake所处理的代码.使用cmake管理项目本身也是在编程,所以称之为”脚本”也不为过.内容为:
cmake_minimum_required(version 2.6)
project(hello)
add_executable(hello main.c)

4 wq退出后,直接执行cmake .

5 生成makefile文件,直接make,就生成了你想要的执行文件.

这样的做法属于内部编译方式.有一个巨大的缺点,对于有代码洁癖的人来说,这种做法会将所有生成的中间文件和源代码混合在一起,而且cmake生成的makefile无法跟踪所有的中间文件,既无法使用”make distclean”命令将所有的中间文件删除.因此推荐建立build目录进行编译,所有的中间文件都会生成在build目录下面.需要删除时直接清空该目录即可.这就是所谓的外部编译方式.

外部编译方式:

1 2 步不变化,在CMakeList.txt文件添加
aux_source_directory(. SRC_LIST)
注意.号与SRC_LIST之间必须有空格隔开

将add_executbale(hello ${SRC_LIST})即可.

4 在该hello目录下新建build目录.直接cmake …

即可在build目录下生成所有的中间文件以及makefile,直接make,生成想要的可执行文件,这样层次清晰,代码洁净.

cmake的基本配置CMakeList.txt参数说明

CMakeLists.txt 的语法比较简单,由命令、注释和空格组成,其中命令是不区分大小写的,符号"#"后面的内容被认为是注释。命令由命令名称、小括号和参数组成,参数之间使用空格进行间隔
cmake_minumum_required(version 3.14)
cmake最低版本需求.只要不高于你使用的当前版本即可,当大于当前版本时,显示错误:
在这里插入图片描述

当然也可以不写,但是会出现警告.

project(HELLO)
仅仅是项目名称,但是不可缺

aux_source_directory(. src_list)
把当前目录下(.)所有源代码文件和头文件加入变量src_list

add_executable(hello ${src_list})
生成应用程序hello

  1. 编写 CmakeLists.txt。
  2. 执行命令“cmake PATH”或者“ccmake PATH”生成 Makefile ( PATH 是 CMakeLists.txt 所在的目录 )。
  3. 使用 make 命令进行编译。

转载:https://fukun.org/archives/0421949.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值