CMAKE——介绍

    科技2025-02-09  17

    CMAKE学习资料汇总

    说明:这部分内容是用于记录自己对于cmake编译工具的学习

    背景介绍

    makefile、cmake和shell之间的联系

    makefile: 帮助我们管理编译项目

    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的Makefile或者project文件, CMake并不直接建构出最终的软件,而是产生标准的建构档(如Makefile或projects )。

    shell脚本:一系列命令和语法 [CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。它的作用和qt的qmake是相似的。]

    实操效果

    通常,如果采用Ubuntu系统编译C/C++程序的时候,系统会采用GCC或者G++编译器。

    GCC是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。

    当你的程序只有一个源文件时,直接就可以用GCC命令编译它。但是当你的程序包含很多个源文件时,用GCC命令逐个去编译时,很容易出现混乱而且编译时的工作量巨大。所以出现了make工具,make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用makefile文件中用户指定的命令来进行编译和链接的。

    makefile命令中就包含了调用GCC(也可以是别的编译器)去编译某个源文件的命令。makefile在一些简单的工程完全可以人工手下,但是当工程非常大的时候,手写makefile也是非常麻烦的,如果换了个平台makefile又要重新修改。

    这时候就出现了Cmake这个工具,cmake就可以更加简单的生成makefile文件给上面那个make用。当然cmake还有其他功能,就是可以跨平台生成对应平台能用的makefile,你不用再自己去修改了。

    可是cmake根据什么生成makefile呢?它又要根据一个叫CMakeLists.txt文件(学名:组态档)去生成makefile。到最后CMakeLists.txt文件由程序员自己书写。

    当然如果你用IDE,类似VS这些一般它都能帮你弄好了,你只需要按一下那个三角形。

    总结:在企业中的大型项目里面,编译都是通过程序猿自己写的CMakeLists.txt来进行控制的。

    Processed: 0.010, SQL: 8