Linux怎么使用CMake编译,cmake怎么安装配置?

在 Linux 上从源码编译安装 CMake

虽然大多数 Linux 发行版都可以通过包管理器(如 aptyum)直接安装 CMake,但包管理器提供的版本往往较旧,如果你需要使用最新特性,从源码编译是最佳选择。

准备工作

在开始编译之前,必须确保系统中已经安装了必要的构建工具和依赖项。

Linux系统使用CMake编译程序
加载中
Linux系统使用CMake编译程序
  • 编译器gccg++
  • 构建工具make
  • 基础库libssl-dev(如果需要支持 HTTPS 功能)

Ubuntu/Debian 系统上,可以使用以下命令安装:

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

CentOS/RHEL 系统上,可以使用:

Linux怎么使用CMake编译,cmake怎么安装配置?

sudo yum groupinstall "Development Tools"
sudo yum install openssl-devel wget

下载 CMake 源码

你可以前往 CMake 官网下载页面 获取最新的版本链接,或者直接使用 wget 命令下载。

# 请根据官网最新的版本号替换链接
wget https://github.com/Kitware/CMake/releases/download/v3.27.0/cmake-3.27.0.tar.gz

下载完成后,解压压缩包:

tar -zxvf cmake-3.27.0.tar.gz
cd cmake-3.27.0

配置与引导 (Bootstrap)

CMake 使用一个名为 bootstrap 的脚本来进行初始配置,这个过程会生成用于后续编译的 Makefile

如果你希望将 CMake 安装到非标准路径/usr/local

Linux怎么使用CMake编译,cmake怎么安装配置?

之外),可以使用 --prefix 参数:

# 默认安装到 /usr/local
./bootstrap
# 或者指定自定义安装路径
# ./bootstrap --prefix=/opt/cmake

编译

配置完成后,使用 make 命令进行编译,为了提高编译速度,建议使用 -j 参数来调用多核并行编译

# 使用所有可用的 CPU 核心进行编译
make -j$(nproc)

注意:如果你的服务器内存较小,请不要使用 -j$(nproc),否则可能会因为内存耗尽导致编译失败。

安装

编译成功后,使用 make install 将二进制文件、库文件和文档安装到系统中,由于涉及系统目录,通常需要 sudo 权限。

sudo make install

Linux怎么使用CMake编译,cmake怎么安装配置?

验证安装

安装完成后,可以通过查看版本号来确认是否安装成功:

cmake --version

如果显示了正确的版本号,说明 CMake 已经成功安装并可以正常使用了。

常见问题排查

  • 权限不足:如果在执行 make install 时报错,请确保使用了 sudo
  • 缺少依赖:如果在执行 ./bootstrap 时报错,请仔细阅读错误信息,通常是缺少了某个开发库(如 OpenSSL)。
  • 环境变量:如果你使用了 --prefix 指定了自定义路径,记得将该路径下的 bin 目录添加到系统的 PATH 环境变量中:
    export PATH=/your/custom/path/bin:$PATH

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/490332.html

(0)
佛山网站制作哪家公司比较专业,佛山企业官网建设多少钱?
上一篇 2026年7月13日 05:56
高洛峰微信开发教程 | 如何快速入门?
下一篇 2026年2月6日 21:04

相关推荐

  • Linux shell中-eq怎么使用?shell脚本比较运算符有哪些

    在 Linux Shell(特别是 Bash)中,-eq 是一个用于整数比较的测试运算符,基本用途-eq 用于判断两个整数是否相等,如果相等,返回退出状态码 0(表示“真”/成功),如果不相等,返回退出状态码 1(表示“假”/失败),语法格式✅ 推荐方式:使用 [[ … ]] 或 [ … ]if……

    2026年7月12日
    6000
  • Linux系统如何配置代理,Linux终端代理怎么设置?

    Linux 系统代理配置全指南在 Linux 系统中,代理的配置分为全局环境变量、桌面环境 GUI、特定软件配置以及强制代理工具四个维度,根据你的需求选择最合适的方法, 通过环境变量配置(最通用)这是最常用的方法,适用于大多数终端程序(如 curl, wget, git 等),临时生效(仅限当前终端会话)在终端……

    2026年7月12日
    6610
  • linux xz命令怎么用?linux xz压缩解压命令详解

    xz命令是Linux系统中基于LZMA算法的高效压缩工具,其核心优势在于极高的压缩比,特别适合对存储成本敏感且对CPU资源有一定余量的服务器环境,但需注意其解压速度相对较慢且不支持增量备份,在Linux生态中,压缩工具的选择往往是一场关于“空间”与“时间”的博弈,gzip和bzip2虽然普及,但在处理大型日志文……

    2026年7月12日
    6100
  • linux升级kernel需要重启吗,linux升级kernel后服务会中断吗

    Linux内核升级的核心在于通过包管理器或编译源码更新系统核心,以获取最新硬件支持、安全补丁及性能优化,建议在生产环境优先使用发行版提供的稳定版内核包而非直接编译最新主线版本,在服务器运维和开发者日常工作中,Linux内核升级往往被视为一项高风险操作,很多人听到“内核”二字就会联想到系统崩溃或驱动丢失,但实际上……

    2026年7月7日
    13400
  • linux res shr是什么?linux系统资源回收方法

    在 Linux 系统中,res 通常不是标准的命令或参数缩写,但结合 shr(可能指 shrinking,即缩小/收缩),你很可能是在询问:如何缩小(shrinking)Linux 文件系统或分区?或者你可能打错了,想输入的是:resize2fs(用于 ext2/ext3/ext4 文件系统)lvreduce……

    2026年7月10日
    8100
  • linux中断栈是什么?linux中断栈溢出怎么解决

    Linux中断栈是内核处理硬件事件时使用的独立堆栈空间,其核心作用在于确保中断服务程序(ISR)能在当前进程上下文被挂起的情况下,安全、高效地执行关键硬件响应逻辑,且必须避免引发内核恐慌,在Linux内核的微观世界里,中断就像是一场突如其来的紧急呼叫,当硬件设备(如网卡、磁盘控制器)发出信号时,CPU必须立即放……

    2026年7月10日
    8210
  • linux中ssh和sftp有什么区别?ssh和sftp有什么区别

    Linux环境下通过SSH建立安全连接后,使用SFTP协议进行文件传输是运维人员最高效、最安全的做法,它无需额外安装FTP服务,直接复用SSH端口即可实现加密传输,在服务器管理的日常工作中,文件传输几乎是每天必做的动作,很多刚接触Linux的朋友,第一反应是去安装vsftpd或者proftpd,配置复杂的用户权……

    2026年7月12日
    5500
  • linux光纤存储怎么配置?linux光纤存储配置方法

    在Linux系统中配置光纤存储(FC SAN)的核心在于正确识别HBA卡、安装驱动、扫描总线并挂载文件系统,这一过程能显著提升数据库和高并发应用的I/O性能,光纤存储并非简单的硬件连接,而是一套涉及物理层、链路层到操作系统层的完整技术栈,对于企业级用户而言,理解Linux如何与光纤通道(Fibre Channe……

    2026年7月7日
    9500
  • linux镜像到底多大?linux系统镜像文件下载

    Linux镜像的大小并非固定值,通常在几十MB到几GB之间波动,具体取决于发行版类型、预装软件包以及是否包含图形界面,轻量级容器镜像可低至几MB,而完整桌面版系统镜像则可能超过4GB,当我们谈论Linux镜像大小时,首先需要明确一个概念:镜像的大小直接决定了下载速度、存储占用以及启动效率,对于开发者而言,理解不……

    2026年7月11日
    9200
  • Linux nf_conntrack是什么?如何查看和修改最大连接数

    在 Linux 系统中,conntrack(连接跟踪)是 Netfilter 框架的核心组件之一,它负责跟踪网络连接的“状态”,使得防火墙(如 iptables/nftables)能够区分“新连接”、“已建立连接”和“错误连接”,从而实现状态检测防火墙功能,以下是关于 Linux nf_conntrack 的全……

    2026年7月10日
    18500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注