CMake入门教程【基础篇】在Windows、Linux上安装CMake

文章目录

  • 1.windows平台
    • 第1步:下载CMake
    • 第2步:安装CMake
    • 第3步:验证安装
    • 第4步:初次使用
    • 第5步:构建和运行
  • 2.Linux平台
    • 2.1 使用包管理器安装
    • 2.2 使用预编译的二进制文件
    • 2.3 从源代码编译
    • 2.4注意事项

1.windows平台

第1步:下载CMake

https://cmake.org/
在这里插入图片描述

首先,访问CMake官方网站。在这里,您会找到适用于不同操作系统的CMake版本。对于Windows用户,您应该下载“.msi”安装文件,这是一个标准的Windows安装包。
在这里插入图片描述

  • windows
    下载 cmake-3.28.1-windows-x86_64.msi

第2步:安装CMake

下载完毕后,双击“.msi”文件开始安装过程。您将被引导通过几个简单的步骤:

  1. 许可协议:阅读并接受许可协议。
  2. 选择安装目录:可以选择默认路径,或自定义安装路径。
  3. 添加环境变量:建议选择将CMake添加到系统PATH,这样可以在任何命令行界面中直接使用CMake。

完成这些步骤后,继续安装过程并等待其完成。

第3步:验证安装

安装完成后,打开命令提示符或PowerShell,输入以下命令:

cssCopy code
cmake --version

如果安装成功,您将看到显示CMake版本的信息。这表示CMake已正确安装在您的系统上。

第4步:初次使用

安装完CMake后,您可以开始使用它来构建项目。一个简单的开始方式是使用CMake来配置一个小型项目。创建一个包含C++源文件的新文件夹,并添加一个名为CMakeLists.txt的文件,这是CMake用来定义项目设置的文件。

例如,CMakeLists.txt文件内容可能如下:

cmakeCopy codecmake_minimum_required(VERSION 3.10)
project(HelloWorld)
add_executable(hello_world main.cpp)

在这个文件中,您定义了项目名称,最低CMake版本,以及要构建的可执行文件。

第5步:构建和运行

最后,通过在项目目录中打开命令行界面,使用以下命令生成和构建项目:

cssCopy codecmake .
cmake --build .

这将编译源代码并生成可执行文件。

2.Linux平台

在Linux平台上安装CMake有几种常用方法,具体取决于你使用的Linux发行版和你的需求。以下是一些普遍适用的方法:

2.1 使用包管理器安装

几乎所有主流的Linux发行版都通过其包管理器提供CMake。以下是一些常见发行版的安装命令:

  • Debian/Ubuntu:

    bashCopy codesudo apt-get update
    sudo apt-get install cmake
    
  • Fedora:

    sudo dnf install cmake
    
  • Arch Linux:

    sudo pacman -S cmake
    
  • openSUSE:

    sudo zypper install cmake
    

2.2 使用预编译的二进制文件

你可以从CMake的官方网站下载预编译的二进制文件,并直接在你的系统上运行它们。

  1. 访问CMake官网(https://cmake.org/download/)。
  2. 下载适合你系统架构的预编译二进制文件。
  3. 解压下载的文件。
  4. 可以将解压后的目录添加到你的PATH环境变量中,以便在任何位置使用CMake。

2.3 从源代码编译

如果你需要安装最新的CMake版本或特定版本,你可以从源代码进行编译安装。这通常需要更多的时间和一些依赖项。

  1. 下载最新的源代码压缩包或克隆仓库:

    git clone https://gitlab.kitware.com/cmake/cmake.git
    
  2. 解压(如果是压缩包)并进入目录:

    cd cmake
    
  3. 配置构建系统并编译(可能需要一些时间):

    bashCopy code./bootstrap
    make
    
  4. 安装:

    sudo make install
    

2.4注意事项

  • 安装的具体步骤可能会因Linux发行版的不同而有所差异。
  • 使用包管理器安装的CMake版本可能不是最新的。如果你需要最新版本的CMake,建议从官网下载或从源代码编译。
  • 从源代码编译CMake可能需要安装额外的依赖项,例如编译器和构建工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/316036.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java学习,一文掌握Java之SpringBoot框架学习文集(2)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

swift-碰到的问题

如何让工程不使用storyboard和scene 删除info.plist里面的Application Scene mainifest 删除SceneDelegate.swift 删除AppDelegate.swift里面的这两个方法 func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession…

aps审核-模电英文稿

模拟电子线路 Analog circuit 需要熟悉课程名,一句话简单概括课程内容,准备一些重点内容介绍。 This course mainly introduces the properties(n.性质) of semiconductors(半导体) and transistors, and then analyzes and masters amplification circ…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)主线程给子线程添加任务以及如何处理该任务

在看此篇文章,建议先看我的往期文章: 基于多反应堆的高并发服务器【C/C/Reactor】(中)在EventLoop的任务队列中添加新任务-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135346492?spm1001.2014.3001.5501一…

简易机器学习笔记(六)不同优化算法器

前言 我们之前不是说了有关梯度下降公式的事嘛,就是那个 这样梯度下降公式涉及两个问题,一是梯度下降的策略,二是涉及到参数的选择,如果我们选择固定步长的时候,就会发现我们求的值一直在最小值左右震荡&#xff0c…

手机录屏没有声音?让你的录屏有声有色

“有人知道手机录屏怎么录声音吗?今天录制了一个小时的直播视频,后面查看的时候发现没有声音,真的非常崩溃,想问问大家有没有办法,解决这个问题。” 在手机录屏的过程中,有时候我们可能会面临录制视频没有…

电脑如何屏幕录制?轻松录制高清视频

在当今信息化的时代,电脑已经成为工作和生活的重要工具。无论是在进行演示、教学还是记录重要操作步骤时,屏幕录制都是非常有用的。可是电脑如何屏幕录制呢?本篇文章将介绍三种常见的电脑屏幕录制方法,通过学习这些方法&#xff0…

航芯ACM32G103开发板评测 02-GPIO输入输出

航芯ACM32G103开发板评测 02-GPIO输入输出 航芯ACM32G103开发板评测 GPIO输入输出应用 软硬件平台 ACM32G103 Board开发板 MDK-ARM Keil GPIO输出典型应用——点灯 GPIO输入典型应用——按键 GPIO 功能概述 GPIO 是通用输入/输出(General Purpose I/O&#x…

kbdnecnt.DLL文件缺失,软件或游戏无法启动运行,怎样快速修复?

不少人都在问“kbdnecnt.DLL文件”是什么?为什么电脑总是报错提示说“kbdnecnt.DLL文件缺失,软件无法启动”? 首先,先来了解“kbdnecnt.DLL文件”是什么? kbdnecnt.DLL是Windows操作系统中的一个动态链接库文件&#…

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-8Lag Compensator滞后补偿器

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-8Lag Compensator滞后补偿器 从稳态误差入手(steady state Error) 误差 Error : E ( s ) R ( s ) − X ( s ) R ( s ) − E ( s ) ⋅ K G …

后台管理系统 -- 点击导航栏菜单对应的面包屑和标签(Tag)的动态编辑功能

相信很多时候,面包屑和标签(Tag)的功能几乎是后台管理系统标配。 就是会随着路由的跳转来进行相应的动态更新。 我先展示一下效果: 1.面包屑 先说一下思路: 我们导航菜单点击之后,将当前显示路由对象存储到Vuex的storge里面,然后在面包屑组件里面,读取这个状态即可…

同义词替换器降低论文重复率的原理分析

大家好,今天来聊聊同义词替换器降低论文重复率的原理分析,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 标题:同义词替换器降低论文重复率的原理分…