非常游戏网
如何在Linux中安装CMake Linux编译安装CMake工具的方法

如何在Linux中安装CMake Linux编译安装CMake工具的方法

2026-05-29系统教程213231

最常见编译失败根源是cmake版本过低:Ubuntu 22.04自带3.22,而项目要求3.27+,导致解析FetchContent等新语法失败;应优先用官网二进制包安装至用户目录,避免sudo和系统污染。

cmake 版本不够新是编译失败最常被忽略的根源——不是项目写错了,而是你用 sudo apt install cmake 装了个 3.22,而 CMakeLists.txt 里写了 cmake_minimum_required(VERSION 3.27)。直接报错 CMake Error: The source directory does not appear to contain CMakeLists.txt,其实根本不是路径问题。

确认当前 cmake 是否真可用、版本是否够用

别信 which cmake,它只告诉你命令在哪,不告诉你版本。必须运行:

cmake --version

如果返回 command not found,说明没装;如果版本 ≤ 3.22(如 Ubuntu 22.04 自带的),而你要编译的项目用了 FetchContent_Declarecmake_language,大概率失败。

  • type -a cmake 可查是否有多个版本共存(比如 /usr/bin/cmake$HOME/cmake/bin/cmake
  • ls -l $(which cmake) 看软链实际指向哪个路径
  • Ubuntu/Debian 老系统(18.04/20.04)默认源里的 cmake 是 3.10 或 3.16,基本无法编译 2025 年后主流 C++ 项目

用官网二进制包安装(推荐给绝大多数用户)

这是最快、最干净、最可控的方式:不依赖系统库、不用 root、不污染 /usr、版本明确。适用于 CI、Docker、普通开发者日常。

  • 下载对应版本的自解压脚本(注意平台和架构):wget https://github.com/Kitware/CMake/releases/download/v3.29.2/cmake-3.29.2-linux-x86_64.sh
  • 加执行权限:chmod +x cmake-3.29.2-linux-x86_64.sh
  • 安装到用户目录(避免 sudo):./cmake-3.29.2-linux-x86_64.sh --prefix=$HOME/cmake --skip-license
  • 把 bin 加进 PATH:echo 'export PATH=$HOME/cmake/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
  • 验证:which cmake 应返回 /home/xxx/cmake/bin/cmakecmake --version 显示 3.29.2

注意:.sh 脚本是静态链接二进制,无需额外依赖;不要用 curl -sSL https://cmake.org/install/ | sh,那个脚本已停更,可能拉到过期或不可信内容。

Trae linux

Trae Linux 官方版本现已全面上线,开发者可直接访问 Trae 官网(trae.cn 国内版或 trae.ai 国际版)获取专属安装包。该版本完美适配主流 Linux 发行版,提供 .deb(适配 Ubuntu/Debian)、.rpm(适配 RHEL/Fedora)以及通用 .tar.gz 格式,并全面支持 x64 与 ARM64 架构。

包管理器安装只适合“能凑合用”的场景

Ubuntu 22.04+、Fedora 38+、Debian 12+ 这类较新发行版,apt install cmakednf install cmake 装出来的版本(3.22–3.25)对简单项目够用;但只要项目要求 ≥3.26,就必须换方式。

  • Ubuntu 想用新版?加 Kitware 官方 APT 源:sudo apt install software-properties-common && sudo add-apt-repository "deb [arch=amd64] https://apt.kitware.com/ $(lsb_release -cs) main" && sudo apt update && sudo apt install cmake
  • CentOS/RHEL 7/8:默认 yum/dnf 源里只有 2.8 或 3.6,epel 提供的也常滞后;cmake3 命令只是旧版 alias,不可靠
  • 别装 cmake-datacmake-curses-gui ——它们不提供 cmake 可执行文件

从源码编译安装:仅当你需要调试 CMake 本身时才考虑

编译 cmake 自身比编译大多数 C++ 项目还麻烦:要先有高版本 cmake 才能 bootstrap,容易陷入“鸡生蛋”循环;依赖 ncurses-developenssl-develzlib-devel,出错信息晦涩。

  • 除非你在改 CMake 源码,或 CI 环境严格禁止外部二进制,否则没必要走这步
  • 常见坑:g++gcc 版本不一致导致 bootstrap 失败;make -j$(nproc) 在内存不足机器上 OOM
  • 若真要试,务必先用二进制版 cmake 验证环境,再用它来编译新版

真正关键的不是“怎么装”,而是装完立刻跑 cmake --versiontype -a cmake ——PATH 顺序、多版本残留、shell 配置未生效,这三个点卡住的人比装错方法的还多。