C语言编译 - CMake

什么是 CMake

  1. 有人会提出疑问,我们不是用Mingw-w64配置好gcc了吗,不就已经实现C++代码的正常运行了嘛?为什么还要cmake呢?其实不难发现,我们上次配置的gcc仅仅适用于运行单个源文件,但是面对大的项目,就会变得很棘手!
  2. 当然,你如果觉得这些配置比较复杂,你可以选择使用Visual Studio或者是更加专业的CLion
    这是一个集成块发环境(IDE),所有的东西都不需要你手动去配置,你只需要把程序写好,点击三角形运行就可以了。
    • 缺点:
      1. 但是这是过于“傻瓜式”的东西,如果想对C或者编译 原理做 进一步的理解的话,还是希望大家 可以自己配置!
      2. Visual Studio、CLion要钱 !
      3. 即使说你可以破解,但是Visual Studio的占用空间比较大,一般安装下载完需要3~4GB,会带来一定的卡顿
      3. 我们在这里做详细的介绍,以及cmake配置的步骤详解!
  3. cmake VS gcc
    1. 什么是gcc?
    gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。
    2. gcc的缺陷
    在上一篇博文中我们用gcc来编译C++,我们会发现每个可执行的.exe都需要单独配置,也就是说:当你的程序只有一个源文件时,直接就可以用gcc命令编译它。
    但是如果你的程序包含很多个源文件时,用gcc命令逐个去编译时,你就很容易混乱而且工作量大
    3. 引入make
    make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式——通过调用makefile文件中用户指定的命令来进行编译和链接的。
    4. 什么是makefiles?
    一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令。
    make需要按照makefile中的命令执行!
    makefile命令中就包含了调用许多编译器(如我们这里多用到的gcc编译器)去编译某个源文件的命令。
    人总是“懒惰的”,makefile在一些简单的工程完全可以人工手写,但是当工程非常大的时候,手写makefile也是非常麻烦的,如果换了个平台makefile又要重新修改。因此我们引入了cmake
    5. 什么是cmake呢?
    CMake这个名字是cross platform make的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。
    CMake可以更加简单的生成makefile文件给上面的make用。当然CMake还可以跨平台生成对应平台能用的makefile,你不用再自己去修改了。
    6. CMake生成makefile的原理
    cmake生成makefile的原理是根据一个叫CMakeLists.txt文件(学名:组态档)去生成makefile。当然CMakeLists.txt就需要你自己去手写了!

CMake安装

CMake下载

CMake官网: https://cmake.org/download/

  • 国外网站网速有点慢,可能下不下来。
  • 可以使用网盘去找资源。

Cmake安装

  1. 选择好自己电脑是什么系统,以及是32位还是64位。(P.S.x86指的是32位系统;x64指的是64位系统)
    1.. 选择自己系统,这里安装windows
  2. 选择安装版本
  • .msi 为安装版本,安装过程中自动配置; .zip 为压缩版本,安装过程中手动配置
  • msi 与zip 的区别:1)集成方式不同。msi:是microsoft installer的简写,是微软格式的安装du包; zip:是一种数据zhi压缩和文档dao储存的文件格式。zip是压缩包,而MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据,只要系统中包含windows installer支持就能够使用。
image.png

Cmake使用

如何构建一个CMake项目(译) - 42&Curry - 博客园 https://www.cnblogs.com/42-Curry/p/9752022.html

参考文章

cmake简明教程-半小时从入门到精通_qccz123456的博客-CSDN博客_cmake教程 https://blog.csdn.net/qccz123456/article/details/80639817

  • 参考文章
    vscode+cmake 环境配置 详解云生死海的博客-CSDN博客怎样将cmake添加到vscode的环境变量 https://blog.csdn.net/qq_44641344/article/details/105977567?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

你可能感兴趣的:(C语言编译 - CMake)