Linux中CMake的使用1-单个源文件

举报
码农爱学习 发表于 2022/02/12 22:17:23 2022/02/12
【摘要】 linux中进行C/C++开发,一般都是先用编辑器写好代码,然后使用gcc工具来编译程序。 文件数量不多的工程,可以直接敲gcc命令进行编译。对于文件较多的工程,就要使用Makefile来管理代码的编译了。 而手动编写Makefile其实也是具有一定的难度的,更方便的方式是使用更易编写CMake来自动生成Makefile。

1 引言

linux中进行C/C++开发,一般都是先用编辑器写好代码,然后使用gcc工具来编译程序。

文件数量不多的工程,可以直接敲gcc命令进行编译。对于文件较多的工程,就要使用Makefile来管理代码的编译了。

而手动编写Makefile其实也是具有一定的难度的,更方便的方式是使用更易编写CMake来自动生成Makefile。

2 Linux中安装CMake

这里插一句,在Window系统中,许多人也用过CMake,它可以配合集成开发环境如Visual Studio,通过图形化的操作界面,操作CMake图形界面进行代码的编译。

本篇介绍的,在Linux中使用CMake,还用不到图形界面,仍然是文本编辑的方式使用CMake。

CMake在Linux的安装,直接使用命令安装即可:

sudo apt install cmake

安装完成之后可以查看cmake的版本,我用的是3.10.2

3 编译单个文件的CMake基础示例

3.1 编写C源文件

首先写一个最简单的hello word程序,hello.c:

#include <stdio.h>
​
int main(void)
{
    printf("Hello World\n");
    return 0;
}

3.2 编写CMakeLists.txt

然后在相同目录下编写CMakeLists.txt:

cmake_minimum_required (VERSION 2.8)
​
project (hello)
​
add_executable(hello hello.c)

这是一个最基础的CMake使用模板,这3行的含义如下:

  • 第一行:要求cmake的最低版本为2.8

  • 第二行:工程名

  • 第三行:生成的可执行文件名为hello,使用的源文件为hello.c

注:以上3条,add_executable起主要作用,前两条去掉也可以运行

3.3 执行cmake指令生成Makefile

然后输入以下命令运行cmake,从而帮我们自动生成makefile文件:

cmake .

这个“点”表示是当前目录搜索源文件。

cmake指令的执行结果如下:

可以看下CMake生成的makefile文件,相比较自己手写的makefile,这个自动生成的makefile,内容很多:

3.4 执行make指令编译代码

makefile文件产生之后,就可以使用make指令来编译源代码了:

make

执行make指令之后,可以看到生成了可执行文件hello,运行这个hello文件,就可以看到程序的输出了:

4 总结

本篇介绍了Liunx中如何使用CMake来生成makefile,进行进行源程序的编译。

将上述的CMake编译单个源文件的使用操作总结为一张图:


编写CMake主要就是编写CMakeLists.txt,基础模板为:

cmake_minimum_required (VERSION 2.8)
​
project (hello)
​
add_executable(hello hello.c)

其中最主要的一句就是:

add_executable(hello hello.c)
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。