在Linux上开始使用CMake和CPack的方法及实例

553 阅读1分钟

CMake是一个流行的、有用的跨平台、开源的工具集,利用编译器和独立于平台的配置文件来构建、测试和打包项目。CMake是作为开源项目的跨平台构建空间的解决方案而开发的。

CPack是一个跨平台的打包工具,由CMake发布。然而,它可以独立于CMake使用,但它使用CMake套件工具的生成器概念。

本指南包括CMake和CPack的安装和使用。

如何安装CMake

你可以通过命令行或Ubuntu软件中心安装CMake。在这种情况下,我们将通过命令行进行安装,但你可以查看完整的CMake安装方法以了解更多细节。

首先,更新你的版本库。

$ sudo apt-get update

接下来,输入下面的命令来安装CMake。

$ sudo snap install cmake --classic

你可以通过检查其版本来确认安装。

$ cmake --版本

在Linux上使用CMake来配置、构建和调试C++项目

CMake在管理C++项目的代码构建方面很受欢迎,它是在每个目录的CMakeLists.txt 文件的帮助下进行的。它们定义了构建系统应该承担的任务。

在我们的案例中,我们将使用Visual Studio Code编写一个简单的C++程序,并使用CMake构建它。

确保你已经安装了C++ Visual Studio扩展,一个调试器,最好是gcc,和CMake。

你可以用以下命令安装gcc。

$ sudo apt-get install build-essential gdb

开始时,创建一个工作文件夹并在Visual Studio Code中打开它。

$ mkdir cmakedemo  
$ cd cmakedemo

打开Visual Studio Code

$ code

一旦Visual Studio Code打开,通过输入ctrl + shift + p来打开调色板。

为了快速创建所需的CMake文件,输入CMake。快速启动 并选择如下图所示的选项。

如果被提示在可执行文件 之间进行选择**,请** 选择可执行文件。你会注意到两个文件,即主函数和CMakeLists.txt将被创建。

你还需要选择一个工具包来通知CMake使用哪个编译器。

首先,在终端上检查你的gcc版本。在调色板上,搜索Kit并选择与你的版本相匹配的一个。

在窗口的底部,你会看到所选的工具包。在我们的例子中,它是GCC 9.4.0 x86_64-linux-gnu。

CMake还使用了一个变体,其中包含关于构建项目的说明。还是在调色板上,输入CMake:Select Variant。有四个变体可供选择。

  • Debug: 它包括调试细节,但禁用了优化。
  • Release: 没有调试细节,但包括优化。
  • RelWithDebInfo: 它包括调试信息,并对大小进行优化。
  • MinSizeRel: 它不包括调试细节,但对尺寸进行优化。

在我们的案例中,我们需要优化和调试信息。所以,我们将选择Debug。

配置

一切都设置好了。打开调色板,输入**CMake:Configure,**点击回车按钮,CMake将生成构建文件并配置项目。

最后一步是构建项目。你可以通过点击屏幕底部的Build 或者运行CMake: Build来完成。

这就是了!你已经成功地使用CMake工具来配置和构建项目了。

如果项目出现任何错误,只需运行CMake:Debug, 它就会显示代码中的错误所在。

使用CPack的CMake

一旦你像我们用CMake那样配置和构建了一个项目,你就需要一种方法来构建软件,使其可以安装。你需要的是一种方法或工具,让你在你的开发机器上构建项目,并创建一个可以转移和安装在另一个设备上的形式。这就是CPack的作用。

CPack将为项目创建一个安装程序和一个包。它可以创建二进制和源代码包。好在CPack支持为OS X、RPM、zip文件、.tar.gz、Debian包、Windows和.sh创建安装程序。

CPack的工作是为项目和tar或zip文件创建一个源代码树的副本,你可以将文件转移到另一台机器上,并将它们存储在正确的目录中,并让你的项目开始运行。CPack完成了大部分的工作,包括为项目创建一个临时目录,并将安装树复制成适合打包工具的格式。

在CMake中使用CPack

由于CPack是CMake的一部分,将两者结合起来是非常容易的。在我们使用CMake的C++项目中,我们创建了一个CMakeLists.txt文件。在该文件中,有对CPack的支持,如图所示,它是自动生成的。

因此,剩下的部分就是生成安装程序和软件包。

要做到这一点,首先,导航到项目目录内的构建 目录。在我们的例子中,它将是。

$ cd cmakedemo/build

你可以列出该目录下的不同文件。

为了生成安装程序,运行命令。

$ cpack -C CPackConfig.cmake

你可以从下面的输出中注意到不同的生成器,包括.tar.gz, .sh, 和.tar.z。

另外,你也可以运行命令。

$ cpack -C CPackSourceConfig.cmake

你现在有了你的项目所需的软件包。

总结

CMake和CPack是生成配置文件、构建、测试和打包项目的有用工具。有大量的选项,你可以用这些命令来实现不同的事情。本指南介绍了什么是CPack和CMake,然后展示了一个例子,用CMake配置和构建一个C++项目,用CPack打包。