cmake -- build .与make的区别
时间: 2024-04-03 07:37:11 浏览: 357
`cmake --build .` 和 `make` 都是用于构建项目的工具,但是它们有一些区别。
`cmake --build .` 是 CMake 提供的一个命令,用于根据生成的构建系统(如 Makefile、Ninja 等)来构建项目。它可以自动检测当前目录下的构建系统,并执行相应的命令来进行编译、链接等操作。
而 `make` 是一个独立的工具,它通常与 GNU Autotools 配合使用,用于编译、链接和安装项目。它可以根据 Makefile 中的指令来执行相应的操作,如编译源代码、生成目标文件、链接可执行文件等。
总的来说,`cmake --build .` 更加灵活和跨平台,因为它可以自动检测当前目录下的构建系统,并执行相应的命令,而 `make` 则需要在每个平台上安装和配置,且只能使用 Makefile 构建项目。
相关问题
cmake .. -DCMAKE_BUILD_TYPE=Release && cmake --build .
`cmake .. -DCMAKE_BUILD_TYPE=Release` 和 `cmake --build .` 是用于构建CMake项目的两个命令行序列。它们通常是在Linux或Windows的终端中执行的。
1. 第一行 `cmake .. -DCMAKE_BUILD_TYPE=Release` 是配置阶段。`cmake` 是一种跨平台的构建系统生成器,它将CMakeLists.txt文件(项目描述文件)转化为特定平台的构建规则。`.`表示当前目录,`..` 表示上一级目录,即源码根目录。`-DCMAKE_BUILD_TYPE=Release` 指定了我们希望生成的是release版本(一般优化度较高,适合生产环境),而非debug版本。
2. 第二行 `cmake --build .` 是构建阶段。`--build` 参数告诉cmake执行实际的构建操作。`.` 同样指代当前目录。这个命令会根据之前设置的CMake选项(如构建类型),生成可执行文件或其他目标。
这两个步骤结合起来,通常是在完成项目配置后将其转换为可以由IDE或make等工具直接使用的构建规则,并开始正式编译和链接工作。
mkdir buildcd buildcmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-arm-linux-gnueabihf.cmake ..make
These commands create two directories: "buildcd" and "buildcmake", then run the CMake build system with the specified toolchain file which targets the ARM Linux platform. Finally, the "make" command is run to compile the project.
阅读全文