文章目录:

  • 1 问题出现原因
  • 2 升级cmake的版本
  • 3 最简单的升级cmake命令的方法,直接使用pip
    • 3.1 使用pip安装cmake的过程
    • 3.2 编译的时候没有使用pip安装的cmake进行编译

1 问题出现原因

场景:

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

  • tensorflow2onnx:https://github.com/onnx/tensorflow-onnx
  • onnx2tensorrt:https://github.com/onnx/onnx-tensorrt

在安装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 Download:https://cmake.org/files/

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.8CMake 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.3Downloading 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.3CMake 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 4月   4 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版本进行编译了!

参考:https://blog.csdn.net/xiaoxilang/article/details/105154354
参考:https://m.linuxidc.com/Linux/2018-09/154165.htm
参考:https://zhuanlan.zhihu.com/p/93480024

在Linux上安装其他版本的cmake 或 升级cmake相关推荐

  1. linux系统下升级node,linux下安装指定版本的nodejs(升级到指定版本)

    原因 最近需要全栈开发但是服务器是linux系统,服务本身通过yum安装软件包,不过yum安装的nodejs版本太低.所以需要自己安装. 方案 下载编译好的文件解压后直接运行即可,不过我们需要全局运行 ...

  2. python --version没输出_如何在Linux上安装Python

    有关在Linux上安装最新的Python而不是较旧版本的分步说明. Python现在是最流行,最常用的编程语言.Python的简单语法和较低的学习曲线使其成为初学者和专业开发人员的最终选择.Pytho ...

  3. 如何在Linux上安装Python

    Python现在是最流行 ,最常用的编程语言. Python的简单语法和低学习曲线使其成为初学者和专业开发人员的最终选择. Python还是一种非常通用的编程语言. 从Web开发到人工智能,它几乎在所 ...

  4. 在Linux和Windows上安装kafka(版本:2.12-2.8.0)

    记录:379 场景:在CentOS 7.9操作系统上,安装kafka_2.12-2.8.0.在Windows上操作系统上,安装kafka_2.12-2.8.0. 版本: JDK 1.8 CentOS ...

  5. linux erlang版本,技术|如何在 Ubuntu Linux 上安装最新的 Erlang

    Erlang 是一种用于构建大规模可扩展实时系统的函数式编程语言.Erlang 最初是由 爱立信 创建的专有软件,后来被开源. Erlang 在 Ubuntu 的 Universe 仓库 中可用.启用 ...

  6. centos+7.2+linux版本,在Linux Centos 7.2 上安装指定版本Docker。

    相关资料链接: 先清空下"历史" yum remove docker \ docker-common \ docker-selinux \ docker-engine 安装必要的包 ...

  7. linux查看websphereMQ版本,Linux上安装WebSphere MQ 7.1

    Linux上安装WebSphere MQ 7.1 1. 解压缩 1. tar -zxvf WMQ_7.1.0.3_TRIAL_LNX_X86_64_ML.tar.gz 2. license accep ...

  8. linux gns3使用教程,《GNS3实战指南》——2.4 在Ubuntu Linux上安装

    本节书摘来自异步社区<GNS3实战指南>一书中的第2章,第2.4节,做者: [美]Jason C. Neumann(詹森 C. 诺伊曼) 更多章节内容能够访问云栖社区"异步社区& ...

  9. linux下安装sbt_如何在Linux上安装SBT

    linux下安装sbt 介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you how to install ...

最新文章

  1. 修改360浏览器 标题栏 显示的文字
  2. 如何将C#nullable int转换为int
  3. POJ 1821 Fence ★(单调队列优化DP)
  4. springboot启动流程
  5. ubuntu截图软件deepin scrot
  6. 下一代Asp.net开发规范OWIN(3)—— Middleware
  7. 判断线段相交(hdu1558 Segment set 线段相交+并查集)
  8. 线程自动退出_什么是Java的守护线程?
  9. Python笔记-利用OpenCV的matchTemplate屏幕找图并使用pyautogui点击
  10. Pentaho Data Integration - Kettle 入门指南
  11. 95-080-040-源码-启动-start-cluster.sh
  12. php 5.4.5,PHP 5.4.5 和 5.3.15 发布
  13. 操作需要计算机管理员权限,win10系统操作文件时提示需要管理员权限的处理教程...
  14. 90 后篮球运动员成功转型 iOS 开发,过程超刺激
  15. Center OS7网络设置
  16. 人脸识别demo使用教程
  17. 【机器学习】(5.4)聚类--密度聚类(DBSCAN、MDCA)
  18. 中国智能燃气表行业发展态势分析及投资风险评估报告2022-2028年版
  19. Python学习笔记——python基础之Python实现名片管理系统
  20. 计算机网页外文文献图书,免费外文文献网站.doc

热门文章

  1. 可能会用到的弹出框用法
  2. 解決scott 用戶登錄錯誤: invalid username/password;logon denied
  3. Debian下配置SSH服务器的方法
  4. APUE读书笔记-第14章-高级I/O
  5. cookie和session的理解
  6. asp.net + winform + log4net 使用示例|using log4net with asp.net/winform
  7. php 报错乱码,thinkphp3 phpexcel 导出报错乱码清除ob
  8. 不懂编程可以自学python吗-会Python的人工作不会太差?编程课真的有必要学吗?...
  9. 千锋python全套视频教程400全集-千锋出品全套python视频教程,400大全集,你了解吗?...
  10. python是人工智能最大骗局-培训三个月拿“高薪”?起底人工智能“速成班”忽悠大法...