CMake入门指南

CMake入门指南

该教程基于官方的Tutorial

概述

CMake的功能类似于GNU autotools,都是使用程序化的方式,自动为项目生成对应平台下的编译规则文件(以下简称Makefile)——比如windows平台下各种IDE的project文件,或者Linux平台下的Makefile。CMake的运作依赖于CMakeLists.txt(注意大小写)这个配置文件,这个(些,一个项目中可能存在多个)文件利用各类宏对生成Makefile的过程进行编程。

第一步:编译第一个Hello world程序

详细过程

创建一个项目目录并在项目根目录创建两个文件CMakeLists.txtmain.c

main.c的内容:

#include <stdio.h>
int main(void) {
  printf("Hello from main.c!\n");

  return 0;
}

CMakeLists.txt的内容:

PROJECT(HELLO)

CMAKE_MINIMUM_REQUIRED(3.0)

SET(SRC_LIST main.c)
MESSAGE(STATUS "The HELLO_BINARY_DIR is " ${HELLO_BINARY_DIR})
MESSAGE(STATUS "The HELLO_SOURCE_DIR is " ${HELLO_SOURCE_DIR})

ADD_EXECUTABLE(hello ${SRC_LIST})

之后在根目录下运行:

cmake .

然后一大堆输出后,可以看到CMake通过检查CMakeLists.txt在当前目录下生成了一大堆文件,以及最关键的Makefile文件。之后的过程就跟正常的make命令使用方式相同了。

一些解释

PROJECT

基本格式:PROJECT(NAME [CXX][C][Java])

主要用于指定项目名称和项目语言,这里的项目的名称会影响到<NAME>_BINARY_DIR<NAME>_SOURCE_DIR两个CMake变量。

CMAKE_MINIMUM_REQUIRED

基本格式:CMAKE_MINIMUM_REQUIRED(VERSION)

用于指定需求的最小的cmake版本

SET

基本格式:SET(VAR VALUE)

SET宏可以声明CMake变量,VALUE可以使用字符串、变量拼接的方式。

MESSAGE

基本格式:MESSAGE(STATUS | SEND_ERROR | FATAL_ERROR VALUE)

MESSAGE用于向控制台输出一条信息。

STATUS: 表明向控制台输出一条普通状态信息

SEND_ERROR: 表明向控制台输出一条普通错误信息

FATAL_ERROR: 表明向控制台输出一条致命错误信息,输出这一信息后,CMake过程将被终止

ADD_EXECUTABLE

基本格式:ADD_EXECUTABLE(EXECUTABLE_NAME SRC_FILES)

用于生成一个可执行文件,SRC_FILES是一个用空格隔开的源文件列表

<name>_BINARY_DIR<name>_SOURCE_DIR内置变量

这两个变量分别指定了项目编译目录和源码目录,更通俗一点,前者是你执行CMake命令时的目录,而后者是你的CMakeLists.txt所在的目录。<name>是你用PROJECT指定的项目名称(区分大小写)。

第二步:更加工程化——添加子

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值