Cmake教程【2】Cmake命令行工具

Cmake命令行工具

概述

CMake是一个开源的跨平台构建工具,用于管理和构建C++项目。CMake命令行工具是CMake提供的命令行接口,可以在命令行中使用CMake命令进行项目的配置和构建。
CMake命令行工具具有以下特点和功能:

  • 跨平台支持:CMake命令行工具可以在各种操作系统上运行,包括Windows、Linux和macOS等。
  • CMake脚本:CMake命令行工具使用CMake脚本来配置和构建项目。CMake脚本是一种基于类似于Makefile的语法的脚本文件,用于描述项目的结构、依赖关系和构建规则。
  • 基本命令:CMake命令行工具提供了一系列基本命令,用于配置项目的源文件、包含目录、库依赖和编译选项等。
  • 生成器:CMake命令行工具支持多种生成器,如Makefile、Ninja、Visual Studio等。生成器用于根据CMake脚本生成适合不同构建系统的构建文件。
  • 构建过程:使用CMake命令行工具,可以执行配置和构建过程,生成可执行文件、库文件或其他构建目标。
  • 变量和选项:CMake命令行工具允许通过命令行选项或环境变量来设置CMake脚本中的变量和选项,从而在构建过程中进行自定义配置。
  • 跨目录构建:CMake支持在不同的目录中构建项目,可以使用命令行参数来指定构建目录和源代码目录。
    总之,CMake命令行工具是一个强大的构建工具,可以通过命令行接口配置和构建C++项目,提供了灵活的构建选项和配置方式,适用于各种规模和类型的项目。

1.cmake

Usage:
cmake [options] <path-to-source>
cmake [options] <path-to-existing-build>
cmake [options] -S <path-to-source> -B <path-to-build>

cmake 命令的作用是在指定目录中寻找CMakeLists.txt文件,并在该目录下生成构建系统文件。这通常用于在项目的构建目录中执行CMake命令。 具体来说,cmake 命令通常在以下场景中使用:

  1. Out-of-source 构建:这是一种推荐的构建方法,即将构建过程与源代码分离。通过在源代码目录的上一级目录中创建一个构建目录,在构建目录中执行cmake …命令,使构建过程与源代码相互独立。这样可以避免在源代码目录中产生构建相关的中间文件和构建结果文件,保持源代码目录的干净和可移植性。
  2. 多配置构建:某些生成器(如Visual Studio)支持多配置构建,即可以在同一个构建目录中生成不同配置(如Debug、Release等)的构建系统文件。在这种情况下,使用cmake命令可以生成多个不同配置的构建系统文件。

参数

-S <path-to-source> = Explicitly specify a source directory.
-B <path-to-build> = Explicitly specify a build directory.

2.make

Usage: make [options] [target] ...
在CMake中,make是一个用于构建项目的命令。它会根据CMakeLists.txt文件中的指令生成构建系统文件(如Makefile),然后使用构建系统文件来编译、链接和生成项目的可执行文件、库文件或其他构建目标。 具体来说,当执行make命令时,它会根据当前目录下的构建系统文件,按照CMakeLists.txt文件中的指令进行构建。这通常包括以下几个步骤:

  1. 依赖检查:make会检查项目的源文件和依赖关系,判断哪些文件需要重新编译。
  2. 编译:对于需要重新编译的源文件,make会调用相应的编译器,将源代码编译为目标文件。
  3. 链接:make会将编译生成的目标文件进行链接,生成最终的可执行文件、库文件或其他构建目标。
  4. 完成构建:当所有的编译和链接任务完成后,make会输出构建的结果,并在构建目录中生成生成的可执行文件、库文件或其他构建目标。 需要注意的是,make命令在执行前需要确保构建系统文件已经生成,并且在构建目录中。如果构建系统文件不存在,可以使用cmake命令来生成构建系统文件,然后再执行make命令进行构建。 总而言之,make命令是用于执行CMake生成的构建系统文件,进行项目的编译、链接和构建的工具。

参数

-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
make -j是用于并行构建项目的make命令选项。该选项后面可以跟一个数字,表示同时运行的任务数量。
例如,make -j4表示使用4个线程并行构建。 使用make -j选项可以加快构建过程的速度,特别是对于大型项目或者拥有多个目标的项目来说。通过并行构建,可以同时处理多个编译任务,从而更高效地利用计算机的多核处理能力,提升构建速度。
需要注意的是,并行构建可能会导致输出信息在终端上交织在一起,使得阅读和调试变得困难。为了更好地控制输出,可以使用VERBOSE=1选项来显示更详细的构建信息,或者使用–output-sync选项来同步输出,使得输出信息按顺序显示。
总而言之,make -j选项可以通过并行构建来加快项目的构建速度,但需要注意输出信息的处理方式,以便更好地进行调试和排查问题。

3.make install

Usage: make [options] [target] ...
在CMake中,make install是一个用于安装构建好的目标文件(可执行文件、库文件等)到指定位置的命令。通过执行make install,可以将构建生成的目标文件复制或移动到指定的安装目录中,使其可被其他程序或用户直接使用。 具体来说,make install会执行以下几个步骤:

  1. 复制或移动目标文件:make install会将构建生成的目标文件复制或移动到指定的安装目录中。这通常包括可执行文件、库文件、头文件、配置文件等。
  2. 设置文件权限:在复制或移动目标文件到安装目录后,make install可能会根据安装规则设置目标文件的权限,以确保其他程序或用户有适当的访问权限。
  3. 生成安装后的配置文件:在安装目录中,make install可能会根据项目的需求生成一些配置文件,以便其他程序或用户在使用已安装的目标文件时能够正确配置环境。

需要注意的是,make install需要在构建过程中已经执行过make命令,确保构建生成了目标文件。另外,执行make install可能需要管理员权限,以便将目标文件复制或移动到系统范围内的目录。 总而言之,make install命令用于安装构建生成的目标文件到指定的安装目录,使其可被其他程序或用户直接使用。这是将项目编译后的成果部署到系统中的重要步骤。在一些需要从源代码编译的工程里也可以使用make install DESTDIR=/your/dir来进行安装到你想要的位置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值