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

【bug解决】 g++版本过低,与pytorch不匹配

报错内容:

Your compiler (g++ 4.8.5) may be ABI-incompatible with PyTorch!
Please use a compiler that is ABI-compatible with GCC 5.0 and above.
See https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html.

See https://gist.github.com/goldsborough/d466f43e8ffc948ff92de7486c5216d6
for instructions on how to install GCC 5 or higher.
Your compiler (c++) is not compatible with the compiler Pytorch was
built with for this platform, which is g++ on linux. Please
use g++ to to compile your extension. Alternatively, you may
compile PyTorch from source using c++, and then you can also use
c++ to compile your extension.

See https://github.com/pytorch/pytorch/blob/master/CONTRIBUTING.md for help
with compiling PyTorch from source.

报错原因:

对于第一个报错,是由于g++版本过低,需要安装5.0以上版本

对于第二个报错,是由于目前使用的c++编译器与pytorch的编译器不一致

解决方案:

1、升级g++版本

(1)下载并解压安装包

# 记得先进入你要安装g++的文件夹
wget http://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz
#5.4.0可以替换为你需要的版本号
tar –zxvf gcc-5.4.0.tar.gz
cd gcc-5.4.0
./contrib/download_prerequisites
#执行脚本自动下载安装所需的依赖

(2)执行安装程序

将g++安装在新的文件夹gcc-5.4中,另外在gcc-5.4文件夹内新建了一个compilefile文件夹用来存储g++编译过程产生的文件。

# 完成上述步骤后,会有文件夹gcc-5.4.0,后续执行安装,为了保持文件目录整洁,可以在gcc-5.4.0文件夹下创建新文件夹gcc-5.4
cd gcc-5.4
mkdir compilefile
cd compilefile
../configure --disable-checking --enable-languages=c,c++ --disable-multilib --prefix=/your/path/to/gcc-5.4 --enable-threads=posix
# 记得将/your/path/to/gcc-5.4换成你的路径
make //需要一小时左右,耐心等待,似乎可以make -j4使用多线程加速,我没尝试
make install  

(3)修改环境变量

vim ~/.bashrc
# 进入环境配置文件后,先按i进入insert模式,然后找个位置加入下面两句,注意修改路径部分
export PATH=/your/path/to/gcc-5.4/bin:/your/path/to/gcc-5.4/lib64:$PATH
export LD_LIBRARY_PATH=/your/path/to/gcc-5.4/lib/:$LD_LIBRARY_PATH
# 按ESC键退出insert模式,再输入:wq保存并退出
# 最后使用下述命令让修改生效
source ~/.bashrc

理论经过上述配置之后执行gcc -v和g++ -v得到的就是你安装的最新版本号。

2、修改环境变量,指定编译器为g++

vim ~/.bashrc

# 还是上面的操作,只需要添加一行代码
export CXX=g++

source ~/.bashrc


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

相关文章:

  • 草料二维码:低成本高效率的访客管理解决方案
  • C++和OpenGL实现3D游戏编程【连载17】——着色器进阶
  • 通过history查看每个用户操作日志
  • LeetCode 0685.冗余连接 II:并查集(和I有何不同分析)——详细题解(附图)
  • AVL树的插入和删除分析(图解和代码)
  • Python | Leetcode Python题解之第526题优美的排列
  • 下载安装COPT+如何在jupyter中使用(安装心得,windows,最新7.2版本)
  • postgresql增量备份系列一
  • TensorRT-LLM的k8s弹性伸缩部署方案
  • 数据转换 | Matlab基于SP符号递归图(Symbolic recurrence plots)一维数据转二维图像方法
  • Unity XR Interaction Toolkit 开发教程(4)XR Origin:追踪参考系与相机高度【3.0以上版本】
  • 三层交换技术,eNSP实验讲解
  • 【大模型开发指南】llamaindex配置deepseek、jina embedding及chromadb实现本地RAG及知识库(win系统、CPU适配)
  • Redis系列---数据管理
  • git入门教程8:git高级分支管理
  • YOLO11论文 | 重要性能衡量指标、训练结果评价及分析及影响mAP的因素【发论文关注的指标】
  • Docker Swarm集群配置与使用
  • 基于知识中台的智能法律咨询服务:革新法律服务的新篇章
  • sicp每日一题[2.65]
  • 【D3.js in Action 3 精译_039】4.3 D3 面积图的绘制方法及其边界标签的添加
  • RTP和RTCP的详细介绍及其C代码示例
  • UG NX二次开发(C#)-UFun-创建草图和草图曲线
  • Redis设计与实现 学习笔记 第十四章 服务器
  • RSTP的工作过程
  • CentOS 9 Stream 上安装 Redis
  • 从事人工智能相关岗位需要具备哪些技能?