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目录下,然后执行解压指令

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

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

cd cmake-3.29.3-linux-x86_64/bin
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

查找当前的存在的版本

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

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

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

查看gcc/g++版本

gcc --version
g++ --version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值