在Linux上安装其他版本的cmake 或 升级cmake

简介: 在Linux上安装其他版本的cmake 或 升级cmake

1 问题出现原因

场景:

需要把tensorflow的pb模型,先转为onnx模型,再转换成tensorrt的trt模型,使用的是:

在安装onnx2tensorrt的过程中,需要使用cmake,由于我的版本比较低,因此需要升级cmake的版本

编译:

cmake .. -DTENSORRT_ROOT=../tensorrt_root && make -j

(yolov4) shl@zhihui-mint:~/shl_res/1_project/yolov4-deepsort/checkpoints/onnx-tensorrt/build$ cmake .. -DTENSORRT_ROOT=../tensorrt_root && make -j
CMake Error at CMakeLists.txt:21 (cmake_minimum_required):
  CMake 3.13 or higher is required.  You are running version 3.10.2


-- Configuring incomplete, errors occurred!
(yolov4) shl@zhihui-mint:~/shl_res/1_project/yolov4-deepsort/checkpoints/onnx-tensorrt/build$

2 升级cmake的版本

1、各种cmake版本安装包下载

Cmake Files Downloadhttps://cmake.org/files/

image.png

2、安装教程参考

我使用sudo apt-get install cmake默认安装的是3.10.2,我们这里编译要求cmake的版本至少是3.13以上

卸载旧版本的cmake

apt-get autoremove cmake

最好不要用上面的命令,直接把旧版本cmake所在的目录删除或移动到桌面备份也可以

上面的傻逼命令,会把之前安装的ros很多库包都删除了,以后如果要卸载什么包,最好用命令:sudo apt remove package_nameatutoremove命令不要轻易用

sudo rm -rf /usr/bin/cmake

注意:

旧版本的cmake可以不用卸载的,所以上面的命令也可以不用使用,因为我在卸载旧版本的cmake的时候,它自动把好多依赖都卸载了,把我的ROS系统也卸载了,哎,只想说FK!

3、下载cmake的安装包,这里我下载的是3.16.8

wget https://cmake.org/files/v3.16/cmake-3.16.8-Linux-x86_64.tar.gz

注意:

cmake-3.16.8-Linux-x86_64.tar.gz压缩包里的文件是已经编译过的,解压就可以用!

4、解压

tar zxvf cmake-3.16.8-Linux-x86_64.tar.gz

5、建立软链接

sudo ln -s /home/shl/tools/cmake-3.16.8-Linux-x86_64/bin/cmake /usr/bin/cmake

软链接建立成功,就可以使用cmake了

(base) shl@zhihui-mint:~/tools$ sudo ln -s /home/shl/tools/cmake-3.16.8-Linux-x86_64/bin/cmake /usr/bin/cmake
(base) shl@zhihui-mint:~/tools$ cmake --version
cmake version 3.16.8

CMake suite maintained and supported by Kitware (kitware.com/cmake).
(base) shl@zhihui-mint:~/tools$

3 最简单的升级cmake命令的方法,直接使用pip

3.1 使用pip安装cmake的过程

1、可以用如下的方式,随便指定一个cmake的版本,查看cmake有哪些版本:

pip install cmake==23232

(base) shl@zhihui-mint:/opt/flameshot/build$ pip install cmake==323
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
ERROR: Could not find a version that satisfies the requirement cmake==323 (from versions: 0.1.0, 0.2.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1, 0.8.0, 0.9.0, 3.6.3, 3.6.3.post1, 3.7.2, 3.8.2, 3.9.6, 3.10.3, 3.11.0, 3.11.4, 3.11.4.post1, 3.12.0, 3.13.0, 3.13.1, 3.13.2, 3.13.2.post1, 3.14.3, 3.14.3.post1, 3.14.4, 3.14.4.post1, 3.15.3, 3.15.3.post1, 3.16.3, 3.16.3.post1, 3.16.5, 3.16.6, 3.16.7, 3.16.8, 3.17.0, 3.17.1, 3.17.2, 3.17.3, 3.18.0, 3.18.2, 3.18.2.post1, 3.18.4, 3.18.4.post1, 3.20.2, 3.20.3)
ERROR: No matching distribution found for cmake==323
(base) shl@zhihui-mint:/opt/flameshot/build$

2、安装我们自己需要的cmake版本

pip install -U cmake==3.17.3

(base) shl@zhihui-mint:/opt/flameshot/build$ pip install -U cmake==3.17.3
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Collecting cmake==3.17.3
  Downloading cmake-3.17.3-py3-none-manylinux1_x86_64.whl (17.6 MB)
     |████████████████████████████████| 17.6 MB 331 kB/s 
Installing collected packages: cmake
Successfully installed cmake-3.17.3
(base) shl@zhihui-mint:/opt/flameshot/build$

3、查看安装好的cmake版本

cmake --version

如下,已经成功安装了指定的cmake的版本3.17.3

(base) shl@zhihui-mint:/opt/flameshot/build$ cmake --version
cmake version 3.17.3

3.2 编译的时候没有使用pip安装的cmake进行编译

当用cmake编译的时候用的还是系统中旧的cmake版本,我们需要把这个cmake指定为我们新安装的版本

(base) shl@zhihui-mint:/opt/flameshot/build$ sudo cmake ..
[sudo] password for shl:       
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.13 or higher is required.  You are running version 3.10.2


-- Configuring incomplete, errors occurred!
(base) shl@zhihui-mint:/opt/flameshot/build$ cmake --version
cmake version 3.17.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).
(base) shl@zhihui-mint:/opt/flameshot/build$

1、删除之前旧的cmake版本

sudo rm -rf /usr/bin/cmake

(base) shl@zhihui-mint:/opt/flameshot/build$ ll /usr/bin/cmake 
-rwxr-xr-x 1 root root 5325648 44 22:10 /usr/bin/cmake*
(base) shl@zhihui-mint:/opt/flameshot/build$ sudo rm -rf /usr/bin/cmake

2、查看我们新安装cmake可执行文件路径

which cmake

(base) shl@zhihui-mint:/opt/flameshot/build$ which cmake
/home/shl/anaconda3/bin/cmake
(base) shl@zhihui-mint:/opt/flameshot/build$

3、把新安装的cmake建立系统cmake路径的软链接

sudo ln -s /home/shl/anaconda3/bin/cmake /usr/bin/cmake

(base) shl@zhihui-mint:/opt/flameshot/build$ sudo ln -s /home/shl/anaconda3/bin/cmake /usr/bin/cmake

之后就可以正确使用新的cmake版本进行编译了!

目录
相关文章
|
25天前
|
安全 Linux 虚拟化
|
19天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
34 5
|
27天前
|
人工智能 安全 Linux
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
58 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
37 3
|
15天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
99 0
|
21天前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
37 0
|
14天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
103 6
|
15天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
57 3
|
15天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
47 2