cmake install_CMake学习笔记(一)

CMake作为一个开源的跨平台编译工具,由于其不依赖于特定编译器的特性,对于我们跨平台编译程序有着十分大的帮助,作为本系列的第一篇,介绍CMake是什么,CMake的安装,以及CMake语句的主体框架。

本篇包含内容:

  • 什么是CMake

  • CMake安装

  • CMake主体框架

1. 什么是CMake?

      可能大家平时有用过或者听说过其它的一些make工具,例如GNU Make, QT的qMake, 微软的MS nmake, BSD Make等等 。这些Make工具遵循着各自的规范和标准,但都有着同样的一个问题:如果软件想要跨平台编译的话,便要每一种标准写一次Makefile,这会带来非常大的麻烦。

     “CMake”是“Cross platform make”的缩写,它是一个针对上述问题所开发的开源跨平台的编译工具,它允许开发者编写一种与平台无关的CMakeList.txt文件来定制整个编译流程,再根据目标用户的平台进一步生成所需的本地化Make -file和工程文件。例如我们最常用的开源项目之一OpenCV,ROS中的catkin, ament, colcon就是使用CMake作为项目架构系统的。

cmake install_CMake学习笔记(一)_第1张图片

2. CMake安装

  • windows系统安装

登录CMake官网(cmake.org/download),下载对应版本的CMake安装器

cmake install_CMake学习笔记(一)_第2张图片

安装选项中勾选添加CMake到系统环境变量中(也可以选择安装后手动添加) 安装成功后可以直接运行GUI版CMake

cmake install_CMake学习笔记(一)_第3张图片

由于我们安装过程中添加了环境变量,重启后打开cmd,输入 cmake,显示相关信息表示安装成功

cmake install_CMake学习笔记(一)_第4张图片

  • Linux系统安装

下面内容以Ubuntu系统举例 

首先打开终端,卸载已经安装的旧版本CMake(非必需)

cmake install_CMake学习笔记(一)_第5张图片

接下里我们下载2020年3月2日最新发布的版本

cmake install_CMake学习笔记(一)_第6张图片

 解压 

cmake install_CMake学习笔记(一)_第7张图片

方便管理,我们将解压后的文件夹放在系统的/opt文件夹中 

9c8adc2945fc546e9b1e2721975cb341.png

最后创建与bash的软链接,Ubuntu系统下的安装便完成了 

393f69257aeb76b82ce6cd2b6d92aac1.png

我们执行命令测试一下,首先是命令行版的:

d3d1d18596b97cd6ebaec4557cfea433.png

GUI版:

cmake install_CMake学习笔记(一)_第8张图片

  • Mac系统安装

和Windows版安装一样,首先在官网( cmake.org/download ) 上下载CMake的GUI版本:

3b773d3fbd274b905a9fc95e6d51f5f4.png

安装完打开应用,选择菜单栏中的Tools->How to install Fow Command Line Use 

cmake install_CMake学习笔记(一)_第9张图片

 接下来我们打开Mac的终端,根据需求配置命令行版的CMake:

1)临时使用(关闭命令行窗口即失效):

PATH="/Applications/CMake.app/Contents/bin":"$PATH"

2)关闭命令行后不失效:

sudo "/Applications/CMake.app/Contents/bin/cmake-gui"--install

配置完后查看是否安装成功:

cmake --version

3. CMake的主体框架

当我们构建一个CMake框架(编写CMakeLists.txt文件)时,我们很自然的会想到以下几个问题:

  • 最终的输出目标是什么:可执行程序,动态库,静态库

  • 输出目标文件所需的文件及环境是什么:编译参数,环境,源文件

  • 输出目标文件是通过怎样的逻辑链接起来的:内外依赖的pkg和lib,如何链接外部库 我们根据上面这个思路,就得到了CMake的Makelist设计的整体框架,接下来的就是通过具体的CMake的指令来逐步填补了。

下一期将建立一个CMake的Helloworld工程来讲解CMake的各种指令。

精彩内容回顾:

深度强化学习简介

JavaEE留言板项目后端开发

机器视觉基础(二):相机和镜头选型

十大经典排序算法的分析与实现

关于CVNewbie

我们是一群哈工大,上海交大,华科大,航天八院和国防科大的硕博共同运营的公众号,我们乐于总结知识,与大家共同进步,欢迎关注我们的公众号【CVNewbie】!

cmake install_CMake学习笔记(一)_第10张图片

你可能感兴趣的:(cmake,install,cmake,安装,cmake安装,linux,cmake安装,ubuntu,cmake安装,windows,cmake,文件无效或损坏)