CMake是目前应用最广泛、IDE支持最好的构建系统之一。由于CMake具有良好的向后兼容性,Modern CMake推荐用户尽量安装CMake的最新版本,然而在Ubuntu系统APT仓库中的CMake版本一般较老旧。Ubuntu 20.04以下版本的用户可以使用Kitware官方APT仓库安装最新版本的CMake和CMake GUI。

  本文以当前最新版本CMake 3.24.2为例,介绍如何在Ubuntu系统中,直接从官方源代码编译安装CMake和CMake GUI。以下步骤在笔者的Ubuntu 22.04 LTS系统中正确完成编译安装,所用Shell为Bash。

1. 卸载通过apt命令安装的旧版本的CMake和CMake GUI。

sudo apt-get remove cmake cmake-gui

2. 使用apt命令安装下载工具Wget,以及CMake编译所需的依赖。若已安装则跳过。

sudo apt-get update
sudo apt-get install wget build-essential libssl-dev

3. 如果不需要安装CMake GUI可跳过该步。CMake GUI的图形界面依赖于Qt5,需要安装相关依赖:

sudo apt-get install qtbase5-dev

4. 下载、解压CMake源码。直链来自Download | CMake。

cd ~wget https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2.tar.gz
tar -zxf
cmake-3.24.2.tar.gz

在CMake目录下进行配置、编译和安装,可能消耗较长时间。

cd cmake-3.24.2./configure --prefix=/opt/cmake --qt-gui         # 如不需要cmake-gui,可删除--qt-guimake -j 8                        # 编译cmake,-j n 表示采用n线程编译sudo make install                    # 安装cmake

运行配置脚本./configure时,–prefix用于设置CMake的安装位置,–qt-gui要求额外编译CMake GUI。由于CMake是Linux系统的可选软件包,且几乎没有其他软件包直接依赖于CMake,推荐将其安装在/opt/cmake目录下方便管理,而强烈不建议安装在默认目录/usr/local下(除非使用的是Docker容器等)。

5. 将CMake的bin目录加入系统变量PATH,便于命令行使用。在Ubuntu系统中,推荐修改~/.bash_aliases。如果用户目录下没有该文件,可以使用touch ~/.bash_aliases命令创建。使用任意编辑器(如vim或emacs),在~/.bash_aliases文件中添加:

export PATH="$PATH:/opt/cmake/bin"          # 目录取决于第4步中的配置

然后在终端中输入以下命令重新初始化Bash:

source ~/.bashrc

6. CMake和CMake GUI安装完成。通过以下命令测试是否正常安装:

cmake --versioncmake-gui &