如何在 Linux 上使用 Cmake

2023年 8月 22日 17.7k 0

CMake 是一种用于构建、测试和打包软件过程自动化的工具。它是一个开源、跨平台的构建系统生成器,允许开发人员通过为各种构建系统(例如 Unix Makefiles、Ninja 和 Microsoft Visual Studio)生成 makefile 或其他构建脚本来管理软件项目的构建过程。

简而言之,当您编写软件程序时,您需要构建它以使其在您的计算机上运行。此过程涉及编译代码并将其链接到任何所需的库、创建可执行文件和其他任务。CMake 是一种工具,可通过创建定义如何构建程序的脚本来帮助自动化此过程。

这些脚本保存在一个名为“CMakeLists.txt”的文件中,其中包含一个命令列表,这些命令告诉 CMake 在哪里可以找到程序的源代码、它依赖哪些库以及如何将所有内容编译和链接在一起。通过读取和解释此文件,CMake 可以生成在不同平台(例如 Unix Makefiles 或 Visual Studio 项目)上构建程序所需的文件。

换句话说,CMake 通过创建定义构建过程的标准化方法,使构建程序变得更加容易,无论您使用的特定构建系统如何。当处理需要在多个平台上或使用不同编译器进行构建的复杂项目时,这可以为您节省大量时间和精力。

安装

在开始使用 CMake 之前,我们需要将其安装在 Linux 系统上。大多数 Linux 发行版的软件包存储库中都提供了 CMake,因此使用软件包管理器即可轻松安装。
步骤 1:使用以下命令安装 CMake:

$ sudo apt-get install cmake

您将在以下终端中看到类似的输出:

如何在 Linux 上使用 Cmake-1
步骤 2:通过运行以下命令验证安装:

$cmake --version

这应该输出系统上安装的 CMake 版本。

如何在 Linux 上使用 Cmake-1

用户指南

为了演示如何使用 CMake,让我们创建一个由单个源文件组成的简单 C++ 项目。出于本指南的目的,我们将制作一个简单的脚本,将“Hello, CMake”字符串输出到控制台。我们将使用 CMake 为项目生成 makefile,然后使用它来构建项目。
步骤 1:首先,为项目创建一个新目录并导航到该目录。然后,创建一个名为“main.cpp”的新文件,其中包含以下内容:

#include <iostream>

int main() {
std::cout << "Hello, CMake!" << std::endl;
return 0;
}

这是一个简单的“Hello, CMake!” 向控制台输出消息的程序。

步骤 2:在项目目录中创建一个名为“CMakeLists.txt”的新文件,其中包含以下内容:

cmake_minimum_required(VERSION 3.10)

project(HelloCMake)

add_executable(hello main.cpp)

注意:此“CMakeLists.txt”文件包含 CMake 为我们的项目生成 makefile 的说明。“cmake_minimum_required”命令指定构建项目所需的 CMake 最低版本,project 命令设置项目的名称。“add_executable”命令指定我们想要构建的可执行文件的名称(hello)和应该编译的源文件(main.cpp)。

步骤 3:通过在项目目录中运行以下命令来生成项目的 makefile:

$cmake .

这会在当前目录中生成一个 makefile,我们可以使用它来构建项目。

步骤 4:通过运行以下命令构建项目:

$make

这将编译源代码并在项目目录中创建一个名为“hello”的可执行文件。

步骤 5:通过运行以下命令来运行可执行文件:

$./hello

这应该输出“Hello, CMake!” 消息到控制台。

结论

我们介绍了在 Linux 上使用 CMake 的基础知识。我们学习了如何在 Linux 系统上安装 CMake 以及如何使用 CMake 创建简单的 C++ 项目。CMake 是一个功能强大的工具,可以用来管理最复杂的软件项目,但我们仅仅触及了其功能的表面。它简化了软件开发项目的构建过程,并提供了一种标准化且独立于平台的定义构建过程的方式,使开发人员更容易管理他们的项目并在不同平台上构建它们。借助 CMake,您可以自动化构建、测试和打包软件的过程,从而节省时间和精力。尽管 CMake 可能具有陡峭的学习曲线,但值得投入时间和精力,尤其是对于大型复杂项目。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论