当前位置: 首页 > article >正文

Ubuntu 20.04安装CMake 3.1

  • 推荐使用方法二,直接下载二进制文件,源码编译报错make报错error:static assertion failed comparison object must be invocable as const,另外报错没有libidn.so.11可以创建libidn.so.12的软链接(方法在后面)

在Ubuntu 20.04上安装 CMake 3.1 的过程可以通过以下几种方法进行。不过请注意,Ubuntu 20.04 自带的官方源中可能提供较新版本的 CMake,因此如果你有特定需求想要安装 CMake 3.1,可能需要通过手动下载和安装旧版本的方式来实现。

方法 1:手动安装 CMake 3.1(从源码编译)

  1. 卸载当前 CMake(如果已安装)
    如果你已经安装了较新的 CMake 版本,可以先卸载:

    sudo apt remove cmake
    
  2. 下载 CMake 3.1 的源码
    你可以通过以下命令从官方 CMake 网站下载版本 3.1 的源码压缩包:

    wget https://cmake.org/files/v3.1/cmake-3.1.0.tar.gz
    
  3. 解压并进入目录

    tar -xvf cmake-3.1.0.tar.gz
    cd cmake-3.1.0
    
  4. 编译和安装

    首先配置编译,然后编译 CMake。

    ./bootstrap
    make -j$(nproc)   # 使用多核编译
    sudo make install
    

    编译过程可能需要一些时间,具体取决于你的系统性能。

  5. 验证安装

    你可以通过以下命令验证 CMake 版本是否安装成功:

    cmake --version
    

    你应该看到类似 3.1.0 的输出。

方法 2:使用旧版本的二进制文件

如果你不想从源码编译,也可以直接下载已经编译好的 CMake 3.1 二进制文件。

  1. 下载 CMake 3.1 的二进制文件
    可以从官方 CMake 网站下载预编译好的 Linux 版本。

    wget https://cmake.org/files/v3.1/cmake-3.1.0-Linux-x86_64.tar.gz
    
  2. 解压并安装

    tar -xvf cmake-3.1.0-Linux-x86_64.tar.gz
    sudo mv cmake-3.1.0-Linux-x86_64 /opt/cmake-3.1
    
  3. 更新系统的 PATH 以使用 CMake 3.1

    将 CMake 的路径添加到你的 PATH 环境变量中:

    echo 'export PATH=/opt/cmake-3.1/bin:$PATH' >> ~/.bashrc
    source ~/.bashrc
    
  4. 验证安装

    检查 CMake 版本是否正确:

    cmake --version
    

方法 3:通过 snap 安装更新版本(不适用于 CMake 3.1)

如果你不需要特定的 CMake 3.1 版本,可以使用 Snap 安装较新版本的 CMake。

sudo snap install cmake --classic

总结

  • 推荐 手动安装 CMake 3.1,最常见的方式是通过源码编译或下载官方的二进制文件。
  • 如果你不需要特定的 CMake 版本,并且对较新的版本没有限制,可以直接通过 aptsnap 安装最新的 CMake 版本。

如果你有任何进一步的问题,或者安装过程中遇到困难,请告诉我!


libidn.so.11: cannot open shared object file 错误表明系统在运行某个程序时,无法找到名为 libidn.so.11 的共享库。这通常是因为所需的 libidn 库版本未安装,或者安装的位置不在系统的动态库查找路径中。

以下是几种解决该问题的方案:

1. 安装 libidn11

libidn.so.11 是由 libidn11 提供的库,可以通过包管理器安装此库。

在 Ubuntu 20.04 及其衍生版本上,运行以下命令以安装 libidn11

sudo apt update
sudo apt install libidn11

安装完成后,重新运行程序检查是否解决问题。

2. 检查库文件路径

如果你已经安装了 libidn11,但仍然收到此错误,可能是系统没有正确找到库文件。

1. 确认库是否已安装

你可以使用 dpkgfind 命令来检查系统中是否已经存在该库:

dpkg -L libidn11 | grep libidn.so

find /usr -name "libidn.so.11"

正常情况下,库文件应位于 /usr/lib/x86_64-linux-gnu/ 目录或类似位置。

2. 如果库存在但未被加载

如果库已经存在但程序仍然无法找到,可能是库路径没有添加到系统的动态链接库路径中。

你可以尝试以下操作:

  • 将库路径添加到 /etc/ld.so.conf.d/ 文件夹中。

编辑 /etc/ld.so.conf.d/libidn.conf(如果该文件不存在则创建),在文件中添加库的路径,例如:

/usr/lib/x86_64-linux-gnu

然后运行以下命令以更新动态链接库的缓存:

sudo ldconfig

3. 手动安装 libidn.so.11

如果系统仓库中无法找到 libidn11,或者你需要特定版本的 libidn.so.11,可以手动下载并安装。

1. 下载 libidn11.deb

从 Ubuntu Packages 网站找到 libidn11 包。你可以根据系统的架构下载相应的 .deb 文件(通常为 amd64i386)。

2. 安装 .deb

下载完成后,运行以下命令安装:

sudo dpkg -i libidn11_*.deb
3. 验证安装

运行以下命令来验证库是否已经安装并能被正确加载:

ldconfig -p | grep libidn.so.11

如果你看到输出,说明库已经正确安装。

4. 使用软链接解决

有时,软件可能要求 libidn.so.11,而系统中只有较新的版本(例如 libidn.so.12)。如果你确信可以兼容较新版本的库,手动创建一个指向现有库的符号链接可能会解决问题。

首先,查找系统中是否有其他版本的 libidn

find /usr -name "libidn.so*"

假设系统中有 libidn.so.12,你可以创建符号链接:

sudo ln -s /usr/lib/x86_64-linux-gnu/libidn.so.12 /usr/lib/x86_64-linux-gnu/libidn.so.11

注意:创建符号链接虽然可以暂时解决问题,但最好确保程序与正确的库版本兼容,避免潜在的兼容性问题。

总结

libidn.so.11 错误通常是由于系统中缺少该库或无法找到该库路径。你可以通过以下方法解决:

  1. 安装 libidn11
  2. 检查并更新库的路径。
  3. 手动安装缺少的库文件。
  4. 使用符号链接解决兼容问题。

通过这些步骤,应该可以解决 libidn.so.11 相关的错误。如果问题仍然存在,请告诉我更多细节,我将帮助进一步排查。


http://www.kler.cn/a/320184.html

相关文章:

  • 第13天:高级主题 - ViewModel 和 LiveData
  • SpringCloud处理Websocket消息过长自动断开连接
  • 集群聊天服务器(13)redis环境安装和发布订阅命令
  • Python | Leetcode Python题解之第564题数组嵌套
  • 【Redis】使用redis实现登录校验功能
  • 【2】猫眼娱乐后端开发面试题整理
  • go fiber 证书
  • C语言 | Leetcode C语言题解之第437题路径总和III
  • 深度学习:神经网络--手写数字识别
  • RocketMQ消息重试机制解析!
  • 优化java中 HashMap 的容量](capacity值)
  • pytest - 多线程提速
  • C# 串口通信的简单概述
  • Delphi 12.2 新出的 WebStencil 组件和 Quill 编辑器配合的问题
  • [uni-app]小兔鲜-02项目首页
  • spark,poi,jar包冲突(commons.io)
  • Mora:多智能体框架实现通用视频生成
  • K8s Fedora单机版
  • 人生苦短,我用Python✌
  • 创业者必备的7个AI工具
  • Vue 入门之 computed 计算属性
  • 进阶SpringBoot之 Dubbo 及 Zookeeper 安装
  • SPSS26统计分析笔记——5 卡法检验
  • 828华为云征文|华为云Flexus云服务器X实例——部署EduSoho网校系统、二次开发对接华为云视频点播实现CDN加速播放
  • 【机器学习】——线性回归(自我监督学习)
  • 关于ollama 在mac的部署问题