CMake实战(一)

前言

CMake和Autotools一样,都是项目构建工具。可以简单理解为,帮助我们生成Makefile,方便编译。

使用实例

(1) 创建main.c/hello.c/hello.h文件,内容如下:

1
2
3
4
5
6
7
8
//hello.c
#include<stdio.h>
#include "hello.h"

int printHello(void)
{
    printf("Hello,World\n");
}
1
2
3
4
5
6
7
//hello.h
#ifndef _HELLO_H
#define _HELLO_H

int printHello(void);

#endif
1
2
3
4
5
6
7
8
9
//main.c
#include<stdio.h>
#include "hello.h"

int main(void)
{
    printHello();
    return 0;
}
[/code]

(2) 创建CMakeLists.txt, 内容如下:

1
2
3
4
5
6
7
#cmake最低版本需求,不加入此行会受到警告信息
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(HELLO) #项目名称
#把当前目录(.)下所有源文件加入变量SRC_LIST
AUX_SOURCE_DIRECTORY(. SRC_LIST)
#生成应用程序 hello
ADD_EXECUTABLE(hello ${SRC_LIST})

CMAKE_MINIMUM_REQUIRED: 限定了 CMake 的版本

PROJECT:指定项目名

AUX_SOURCE_DIRECTORY:  添加源文件列表

ADD_EXECUTABLE:  生成应用程序

(3) 创建build目录

1
mkdir build

目录结构如下:

创建build目录是为了让一些中间文件放到该目录,这样不会让目录很乱,当然也可以省略就是了。

(4) 使用cmake构建项目

1
2
cd build
cmake ..     // ..表示上一个目录

如果没有安装cmake,使用下面命令安装:

1
sudo apt-get install cmake

执行成功后会生成Makefile文件

(5) 编译生成可执行文件

1
make