本文主要是介绍cmake的使用方法:单个源文件的编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一. 简介
经过前一篇文章的学习,针对不同平台下编译 .c工程时,为了不用针对不同平台编写(不同标准,不同规范)Makefile文件,提出了 cmake工具,cmake可以解决跨平台编译的问题。
cmake 就是针对这个问题所诞生,允许开发者编写一种与平台无关的 CMakeLists.txt 文件来制定整个工程的编译流程,再根据具体的编译平台,生成本地化的 Makefile 和工程文件,最后执行 make 编译。
二. Linux系统下安装 cmake工具
cmake 就是一个工具命令,在 Ubuntu 系统下通过 apt-get 命令可以在线安装,输入如下命令进行安装:
sudo apt-get install cmake
输入 "cmake --version" 命令可以查看cmake工具是否安装:
可以看出,当前系统安装的 cmake 对应的版本号为 3.16.3 , cmake 工具版本更新也是比较快的,从官 网 https://cmake.org/ 可知, cmake 最新版本为 3.22.0 ,不过这都没关系,其实使用哪个版本都是可以的,差 别并不会太大,所以这个大家不用担心。
三. cmake的使用方法:单个源文件的编译
安装完 cmake 工具之后,接着我们就来学习如何去使用 cmake 。 cmake 官方也给大家提供相应教程,链接地址如下所示:
https://cmake.org/documentation/ //文档总链接地址
https://cmake.org/cmake/help/latest/guide/tutorial/index.html //培训教程
如果大家自学能力强,完全可以参考官方提供的培训教程学习 cmake ;对于 cmake 的学习,笔者给大家
两个建议:
1. 从简单开始、再到复杂!
2. 重点是自己动手多练习。
接下来从一个非常简单的示例开始向大家介绍如何使用 cmake ,再从这个示例进一步扩展、提出 更多需求,来看看 cmake 如何去满足这些需求。
单个源文件的程序通常是最简单的,一个经典的 C 程序“ Hello World ”,如何用 cmake 来进行构建呢?
1. 源码文件 main.c
#include <stdio.h>int main(int argc, char argv[])
{printf("Hello World!\n");return 0;
}
2. 创建 一个 CMakeLists.txt文件
现在我们需要新建一个 CMakeLists.txt 文件, CMakeLists.txt 文件会被 cmake 工具解析,就好比是 Makefile 文件会被 make 工具解析一样; CMakeLists.txt 创建完成之后,在文件中写入如下内容:
project(HELLO)
add_executable(hello ./main.c)
写入完成之后,保存退出,当前工程目录结构如下所示:
在我们的工程目录下有两个文件,源文件 main.c 和 CMakeLists.txt 。
接着我们在工程目录下直接执行 cmake 命令,如下所示:
cmake ./
cmake 后面携带的路径指定了 CMakeLists.txt 文件的所在路径,执行结果如下所示:
执行完 cmake 之后,除了源文件 main.c 和 CMakeLists.txt 之外,可以看到当前目录下生成了很多其它的文件或文件夹,包括: CMakeCache.txt 、 CmakeFiles 、 cmake_install.cmake 、 Makefile ,
重点是生成了这个 Makefile 文件,有了 Makefile 之后,接着我们使用 make 工具编译我们的工程,输入 make命令进行编译:
通过 make 编译之后得到了一个可执行文件 hello ,这个名字是在 CMakeLists.txt 文件中指定的,稍后向大家介绍。
通过 file 命令可以查看到 hello 是一个 x86-64 架构下的可执行文件,所以只能在我们的 Ubuntu PC 上运行:
为了验证 hello 可执行文件运行结果是否与源代码相同,我们直接在 Ubuntu 下运行即可,如下所示:
上面我们通过了一个非常简单例子向大家演示了如何使用 cmake ,重点在于去编写一个 CMakeLists.txt文件,接下来分析一下 CMakeLists.txt 文件中内容。
这篇关于cmake的使用方法:单个源文件的编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!