Ubuntu 22.04.4 LTS安装cmake-3.29.5

一、下载源码

wget https://github.com/Kitware/CMake/releases/download/v3.29.5/cmake-3.29.5.tar.gz
tar -xzvf cmake-3.29.5.tar.gz

二、编译

运行./bootstrap。

如果出现下列问题:

-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) 
CMake Error at Utilities/cmcurl/CMakeLists.txt:644 (message):
  Could not find OpenSSL.  Install an OpenSSL development package or
  configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.

安装OpenSSL开发包:sudo apt-get install libssl-dev。

运行make 编译。

三、安装

运行make install

查看版本:sudo cmake --version

复制cmake到/usr/bin: cpy /usr/local/bin /usr/bin

遇到的问题是CMake在尝试构建某个项目时未能找到OpenSSL库。

这通常用于提供加密功能,很多软件依赖它。这里提供几个解决办法:
1. 安装OpenSSL开发包 
   在不同的操作系统上安装OpenSSL的方法有所不同。
   - 在Ubuntu/Debian类Linux发行版上,你可以使用以下命令安装:

     sudo apt-get updatesudo apt-get install libssl-dev

   - 在Fedora/RedHat/CentOS上,你可以使用以下命令安装:

     sudo yum install openssl-devel

    - 对于macOS,可以使用Homebrew安装OpenSSL:
     

     brew install openssl

   - 在Windows上,你可以从[OpenSSL官网](https://www.openssl.org/)下载相应的预编译版本,或使用像vcpkg这样的包管理器进行安装。
2. 设置OPENSSL_ROOT_DIR环境变量 
   如果OpenSSL已安装但CMake找不到它,你可能需要设置环境变量 OPENSSL_ROOT_DIR 到OpenSSL的安装根目录。在命令行中,你可以这样做:
   - 对于Linux和macOS:

     export OPENSSL_ROOT_DIR=/path/to/openssl

     把 /path/to/openssl 替换为实际的OpenSSL安装路径。
   - 对于Windows,你可以在命令提示符下执行以下命令或在系统环境变量中设置:

     set OPENSSL_ROOT_DIR=C:\path\to\openssl

     同时确保对 OPENSSL_CRYPTO_LIBRARY 和 OPENSSL_INCLUDE_DIR 环境变量也设置正确的路径。
3. 重新运行CMake 
   在安装OpenSSL并确设置环墜变量后,重新运行CMake生成过程。
   如果你想在构建项目时关闭OpenSSL,你可以通过传递 -DCMAKE_USE_OPENSSL=OFF 标志给CMake来实现这一点。例如:

   cmake -DCMAKE_USE_OPENSSL=OFF ..

   这将配置CMake不使用OpenSSL构建项目。
以上步骤应该能帮助解决找不到OpenSSL的问题。如果问题依然存在,请确保你的OpenSSL版本与项目兼容,有时候最新版本的OpenSSL可能不被旧项目支持。此时,尝试安装项目推荐的OpenSSL版本或更新项目代码到支持最新OpenSSL库的版本。

在Ubuntu中升级CMake

你可以按照以下步骤进行,这些步骤结合了参考文章中的信息,并进行了适当的归纳和整理:

方法一:使用apt包管理器(推荐)

  1. 更新系统包列表
    打开终端,输入以下命令来更新系统上的包列表:

    sudo apt-get update

  2. 安装或升级CMake
    使用apt包管理器安装或升级CMake到Ubuntu仓库中的最新版本。输入以下命令:

    sudo apt-get install cmake
    
     

    如果CMake已经安装,这个命令会将其升级到仓库中的最新版本。

方法二:从源代码编译安装(如果需要最新版本)

如果你需要安装CMake的最新版本,而Ubuntu仓库中的版本不满足你的需求,你可以从源代码编译安装CMake。

  1. 下载CMake源代码
    访问CMake的官方网站(https://cmake.org/download/)下载最新版本的源代码。你也可以使用wget命令在终端中下载,例如:

    wget https://cmake.org/files/vX.YY/cmake-X.YY.Z.tar.gz # 请替换为实际的版本号
     

    请将X.YY.Z替换为实际的版本号。

    解压下载的源代码
    使用tar命令解压下载的源代码:

    tar -zxvf cmake-X.YY.Z.tar.gz # 请替换为实际的压缩包名
     

    进入解压后的目录并配置CMake
    进入解压后的目录,并执行配置脚本以准备构建环境:

    cd cmake-X.YY.Z # 请替换为实际的目录名 
    ./bootstrap
     

    编译CMake
    使用make命令编译CMake:

    make
    这可能需要一段时间,特别是如果你的系统配置较低。
  2. 安装CMake
    使用sudo和make install命令安装CMake:

    sudo make install
     
  3. 验证安装
    通过输入以下命令来验证CMake是否已成功安装并检查其版本:

    cmake --version

方法三:使用第三方仓库(可选)

如果你希望使用第三方仓库来获取CMake的最新版本,你可以按照参考文章1或参考文章2中的步骤来添加Kitware的APT仓库并安装CMake。但请注意,使用第三方仓库可能会引入额外的风险,因此在选择和使用之前,请务必仔细阅读相关的文档和说明。

注意事项

  • 在升级CMake之前,请确保你的项目和其他依赖项与新版本的CMake兼容。
  • 如果你之前安装了旧版本的CMake,并且想要确保新安装的版本成为默认版本,你可能需要使用update-alternatives命令或修改PATH环境变量。但请注意,CMake通常不会通过apt包管理器安装多个版本,所以这一步可能是不必要的。
  • 如果你遇到任何问题或错误消息,请参考相关的错误输出和文档进行故障排除。

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

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

相关文章

【STM32】STM32F103C6T6标准外设库

1、标准外设库获取 第一步,首先获取标准外设库,可以从官网进行下载。 https://www.st.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html 根据自己的型号选择不同的系列,我这里选择是STM32F1系列 下载最新版本V3.6&a…

【Neo4j】Windows11使用Neo4j导入CSV数据可视化知识图谱

Windows11使用Neo4j导入CSV数据可视化知识图谱 序1. 安装JDK21(1)下载(2)安装(3)环境配置 2. 安装Neo4j(1)下载(2)解压安装(3)环境配置…

<Rust><iced>基于rust使用iced库构建GUI实例:动态改变主题色

前言 本专栏是Rust实例应用。 环境配置 平台:windows 软件:vscode 语言:rust 库:iced、iced_aw 概述 本篇构建了这样的一个实例,可以动态修改UI的主题,通过菜单栏来选择预设的自定义主题和官方主题&#…

python如何画函数图像

通过图像可以直观地学习函数变化、分布等规律,在学习函数、概率分布等方面效果显著。下面我们尝试用Python的2D绘图库matplotlib来绘制函数图像。 下面我们来实现一个简单的函数: 首先,调用matplotlib库和numpy库 import matplotlib.pyplot …

UML实现图-部署图

概述 部署图(Deployent Diagram)描述了运行软件的系统中硬件和软件的物理结构。部署图中通常包含两种元素:节点和关联关系,部署图中每个配置必须存在于某些节点上。部署图也可以包含包或子系统。 节点是在运行时代表计算机资源的物理元素。节点名称有两种:简单名和…

Llama模型家族之拒绝抽样(Rejection Sampling)(二)均匀分布简介

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 基于 LlaMA…

Edge 工作区是什么?它都有哪些作用?

什么是工作区 Edge 工作区是什么?它是微软 Edge 浏览器中的一个功能,在帮助用户更好地组织和管理他们的浏览会话。通过工作区,用户可以创建多个独立的浏览环境,每个工作区内包含一组相关的标签页和浏览器设置。这使得用户能够根据…

GPT-4o:免费且更快的模型

OpenAI GPT-4o 公告 OpenAI 推出了增强版 GPT-4 模型——OpenAI GPT-4o,用于支持 ChatGPT。首席技术官 Mira Murati 表示,更新后的模型速度更快,并在文本、视觉和音频处理方面有了显著提升。GPT-4o 将免费向所有用户开放,付费用户…

【TB作品】MSP430F5529 单片机,温度控制系统,DS18B20,使用MSP430实现的智能温度控制系统

作品功能 这个智能温度控制系统基于MSP430单片机设计,能够实时监测环境温度并根据预设的温度报警值自动调节风扇和加热片的工作状态。主要功能包括: 实时显示当前温度。通过OLED屏幕显示温度报警值。通过按键设置温度报警值。实际温度超过报警值时&…

【大模型】Ollama+open-webui/Anything LLM部署本地大模型构建RAG个人知识库教程(Mac)

目录 一、Ollama是什么? 二、如何在Mac上安装Ollama 1. 准备工作 2. 下载并安装Ollama 3. 运行Ollama 4. 安装和配置大型语言模型 5. 使用Ollama 三、安装open-webui 1. 准备工作 2. Open WebUI ⭐的主要特点 3. Docker安装OpenWebUI,拉去太慢…

为Android组件化项目搭建Maven私服

概览 文章目录 概览前言搭建 maven 私服服务器环境jdk安装配置nexus安装配置管理创建存储点、仓库 项目中使用 maven 私服上传 module 到仓库自动发布 module手动上传单个aar包 引用仓库中的 modulebuild.gradle引入远程module FAQ开发阶段有些module用远程依赖,有些…

python tqdm怎么安装

tqdm是一个显示循环的进度条的库。taqadum, تقدّم)在阿拉伯语中的意思是进展。tqdm可以在长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator),是一个快速、扩展性强的进度条工具库。 tqdm库的安装 在CMD窗口下输…

神经网络 torch.nn---Containers

torch.nn — PyTorch 2.3 documentation torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) nn是Neural Network的简称,帮助程序员方便执行如下的与神经网络相关的行为: (1)创建神经网络 (2)训练…

redis学习路线

待更新… 一、nosql讲解 1. 为什么要用nosql? 用户的个人信息,社交网络,地理位置,自己产生的数据,日志等等爆发式增长!传统的关系型数据库已无法满足这些数据处理的要求,这时我们就需要使用N…

Vxe UI vxe-table 实现自定义列拖拽,列拖拽排序功能

Vxe UI vue vxe-table 实现自定义列拖拽&#xff0c;列拖拽排序功能 开启自定义列 vxe-toolbar 工具栏&#xff0c;通过 custom 启用后就可以开启自定义列功能 <template><div><vxe-toolbar ref"toolbarRef" custom></vxe-toolbar><vx…

k8s 配置资源管理

一、Secret的资源配置 1.1 Secret配置的相关说明 Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源&#xff0c;这类数据虽然也可以存放在 Pod 或者镜像中&#xff0c;但是放在 Secret 中是为了更方便的控制如何使用数据&#xff0c;并减少暴露的风险。 有四种类型&a…

生活使用英语口语柯桥外语学校成人英语学习

● “自来水”英语怎么说&#xff1f; ● “自来水”的英语表达是&#xff1a;Running water或者Tap water. 例句&#xff1a; There are hot and cold running water in all the bedrooms. 所有的卧室里都有冷热自来水。 ● “热水”英文怎么水&#xff1f; ● 我们不管…

Java面试题:Redis持久化问题

Redis持久化问题 RDB (Redis Database Backup File) Redis数据快照 将内存中的所有数据都记录到磁盘中做快照 当Redis实例故障重启时,从磁盘读取快照文件恢复数据 使用 save/bgsave命令进行手动快照 save使用主进程执行RDB,对所有命令都进行阻塞 bgsave使用子进程执行R…

21 - 即时食物配送 II(高频 SQL 50 题基础版)

21 - 即时食物配送 II -- sum(if(order_datecustomer_pref_delivery_date,1,0))/count(*)sum(order_datecustomer_pref_delivery_date)/count(*) -- count(*),表示数据的行数&#xff0c;如果有分组&#xff0c;为分组后数据的行数select round(100*sum(if(order_datecustomer_…

Gradio.NET:一个快速制作演示demo网页的利器

Gradio介绍 Gradio是一个用于创建机器学习模型交互界面的Python库。它允许开发者快速为他们的模型创建一个简单的web界面&#xff0c;以便于非技术用户和其他开发者进行交互和测试。 Gradio的主要优点是易用性和灵活性。你只需要几行代码就可以为你的模型创建一个交互界面。你…