CMake简介
CMake是一个工具,可以帮助我们实现跨平台开发的工具,在实际开发中可以发挥重要的作用。
我们先图解一下CMake的作用:
假如我们现在有一个在不同平台都有共享代码的C++的工程,这些平台分别是:Windows、OSX、Linux,在这些平台使用的IDE分别是:Visual Studio、Xcode,现在有一份公共的代码:one.cpp,已经部署在三个平台上。
现在,我们需要新加一个 bar.cpp,正常来说,我们需要在每一个平台下面按照相应的规则添加这个bar.cpp,这个过程是需要我们手动去完成,比较繁琐,而且容易出错。
而CMake帮我们完成的事情就是将这些工程中的配置进行一个统一的管理,如下图:
CMake读取到工程中的改变,就会对每一个工程进行相应的更改。
那么,CMake是怎么读取到工程中有改变呢?是通过一个文件:CMakeLists.txt,这个文件的名字是固定的,更改之后,CMake就识别不出来这个文件了。
这个CMake使用的这个CMakeLists.txt文件里面就是工程里面的配置项,CMake使用的语言是独立于任何平台的,也就是和平台没有什么关系。
CMake的安装
CMake的介绍之后,就是要我们来安装CMake,这是CMake官网:https://cmake.org/download/
进入官网之后,我们下载二进制分布里面的最新文件,源文件是需要我们自己编译,有点恶心,所以我们直接下载二进制文件,也就是已经编译好的版本。
安装的时候我们可以把CMake放在环境变量中:
安装完成之后就可以使用CMake的GUI界面了:
CMake的使用
使用GUI界面来使用CMake
一、首先我们应该在该平台下面有一个工程,我们起名为:CMakeTest.cpp
使用VS创建一个CMakeTest的工程起名字为:CMakeTest.cpp
#include <iostream>
int main(int argc, char* argv)
{
std::cout << "This is a project for test CMakeTest" << std::endl;
return 0;
}
代码很简单,目的是熟悉流程,
工程建立完成我们就应该写我们的CMakeLists.txt文件了,文件名必须是:CMakeLists.txt,且文件应该和我们建立的.cpp文件在一个文件目录里面,在这个工程里面也就是得和CMakeTest.cpp在一个文件夹。
CMakeLists.txt里面的内容如下,指令可以大概了解一下,之后可以系统的去学习这些指令
#CMakeLists.txt
#每个CMakeLists里面开始都要加,这是这个版本CMakeLists的版本号
cmake_minimum_required(VERSION 2.8)
#项目声明,每个平台的解决方案都有自己的名称,VS是:CMakeLists.sln,Xcode是:CMakeLists.xcodeproj
project(CMakeTest)
#添加可执行文件CMakeLists 和源cpp
add_executable(CMakeTest CMakeTest.cpp)
CMakeLists.txt文件建立好之后,之后我们打开CMake的GUI界面,
输入刚才我们建立的CMakeLists.txt文件的目录,以及我们要输出的目录,输出的目录里面就是存放我们新生成的工程文件的配置等。
接着我们点击:“Configure”
点击之后会弹出窗口,让我们选择版本:
这里我选择VS2017版本,然后点击“Finish”,然后他就会生成我们的工程的配置文件,窗口会爆红,但是不影响,因为是第一次设置,红色只是醒目的提醒你一下。
完成之后会有:“Configuring done”提示,如果此时没有Configuring done,可能是CMakeLists有问题
然后,我们点击:"Generate",这个将为我们生成sln解决方案,执行成功之后,将会显示:“Generating done”
接着,我们打开刚才输出文件的目录,此时工程的配置文件以及sln解决方案就会在文件夹里面了。