当前位置:   article > 正文

ubuntu18+cmake+libtorch踩坑记录

ubuntu18+cmake+libtorch踩坑记录

老版本的ubuntu系统上使用最新的libtorch,存在许多坑,记录一下,大家遇到类型问题时,可以参考。

1 问题描述

使用cmake来编译基于libtorch编写的c++文件时,可能存在如下问题

1)ubuntu版本太低,不支持c++17标准。

       解决方案升级c++编译器,这里我用的是VSCode,通过升级VSCode,解决了这个问题。

2)cmake版本太低,cmake时,报出不常见错误,如

        Cannot specify link libraries for target "caffe2::mkl" which is not built by this project.

3)显示gcc版本太旧,无法生成pytorch的依赖,如

        #error "You're trying to build PyTorch with a too old version of GCC. We need GCC 9 or later."

2 升级CMake

2.1 下载

官网下载二进制压缩包:Download CMake

2.2 解压

首先cd 到Downloads目录下,然后执行解压指令

  1. cd Downloads
  2. sudo tar -zxvf cmake-3.29.3-linux-x86_64.tar.gz

查看版本信息,验证是否安装好

  1. cd cmake-3.29.3-linux-x86_64/bin
  2. camke -version

或者

./cmake -version

2.3 建立软链接

在建立软链接时,可能存在cmake冲突,冲突时需要先移除原本的cmake链接。

移除

sudo rm -rf /usr/bin/cmake

建立

sudo ln -s /home/touch/Downloads/cmake-3.29.3-linux-x86_64/bin/cmake /usr/bin/cmake

验证

cmake -version

3 升级gcc/g++版本

参考链接:Ubuntu18.04升级gcc/g++版本 - 知乎

在低版本的ubuntu中官方不支持安装更高版本的gcc/g++,因此采用ppa源来进行安装。

3.1 添加源

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

更新源

sudo apt-get update

3.2 安装指定版本的gcc/g++-11

apt install gcc-11 g++-11 -y

查找当前的存在的版本

  1. locate gcc | grep -E "/usr/bin/gcc-"
  2. //如果locate不能用,使用ls查询/usr/bin/gcc*和g++*,这一步骤,在下一步会用到

更改默认gcc/g++-11指向

  1. /这里的gcc-7是找到当前系统存在的版本,在auto模式下,1代表优先级,优先级数值越大优先级越高
  2. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 1
  3. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 10
  4. sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 1
  5. sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 10

查看gcc/g++版本

  1. gcc --version
  2. g++ --version

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号