cmake的安装与基本使用

CMake是一个跨平台的、开源的构建工具。cmake是makefile的上层工具,它们的目的正是为了产生可移植的makefile,并简化自己动手写makefile时的巨大工作量.目前很多开源的项目都可以通过CMake工具来轻松构建工程 cmake的官网:https://cmake.org/ 1,安装cmake:

sudo apt-get install cmake

2,安装gcc和g++

sudo apt-get install gcc
sudo apt-get install g++

两个缺少任何其中一个都会导致生成Makefile失败:如下所示 3,安装成功查看cmake版本:

cmake --version

4,main.c和CMakeLists.txt的编写 注:在同一目录下编写main.c和CMakeLists.txt main.c:

#include <stdio.h>
int main()
{
          
   
	printf("hello world
");
	return 0;
}

CMakeLists.txt:

PROJECT (HELLO)
SET(SRC_LIST main.c)
MESSAGE(STATUS "THIS isBINARY dir" ${
          
   HELLO_BINARY_DIR})
ADD_EXECUTABLE(hello ${
          
   SRC_LIST})

5,构建 命令: 1,cmake . 构建成功之后系统会自动生成如下文件: 2,make 这时候会生成可执行程序hello 3,./hello 4,make VERBOSE=1:可以查看make构建的详细过程 6,详细解释 对CMakeLists.txt的详细解释: 用这个指令定义工程名称,并且可以指定工程支持的语言,支持的语言列表是可以忽略的,默认情况表示支持所有语言。

PROJECT(projectname [CXX] [C] [Java])

这个指令隐式的定义了两个cmake的变量:

<projectname>_BINARY_DIR
<projectname>_SOURCE_DIR

这两个变量可以用(这样不用担心写错工程名称)。

PROJECT_BINARY_DIR
PROJECT_SOURCE_DIR

这里先了解SET指令可以用来显示的定义变量即可。这里是

SET(SRC_LIST main.c)

如果有多个源文件,也可以定义为:

SET(SRC_LIST main.c t1.c t2.c)

这个指令是向终端输出用户定义的信息,包含三种类型:

SEND_ERROR#产生错误,生成过程被跳过。
STATUS#输出前缀为--d的信息。
FATAL_ERROR#立即终止所有的cmake过程。

定义了一个为hello的可执行文件,相关的源文件是SRC_LIST中定义的源文件列表。

ADD_EXECUTABLE(hello ${
          
   SRC_LIST})

7,清理工程 make clean: 用来清理makefile产生的中间的文件,但是,不能使用make distclean清除cmake产生的中间件 rm -rf ***: 用来删除cmake的中间件

经验分享 程序员 微信小程序 职场和发展