欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

error trying to exec 'cc1plus': execvp: No such file or directory

程序员文章站 2022-07-15 16:59:53
...

问题描述:

       安装CUDA,配置好环境变量后,python程序中import theano出错:

g++: error trying to exec 'cc1plus': execvp: No such file or directory
  • 1

  • 1
  • 2

       这个错误最初出现在编译基于theano的python程序,后来发现在交互模式下import theano时就报错。按照theano官方教程配置GPU环境[1],始终无法使用GPU。再结合g++、nvcc等关键字,于是怀疑是编译器出现了问题。
       以 g++: error trying to exec ‘cc1plus’为关键字搜索,博客cloudsky[2]指出”这个错误是gcc和g++版本不兼容导致的,也有可能是安装完gcc没有安装g++”。使用find命令,发现文件cc1plus确实存在,并且存在两个版本gcc-4.9和gcc-5。

# find / -name cc1plus
/usr/lib/gcc/x86_64-linux-gnu/4.9/cc1plus
/usr/lib/gcc/x86_64-linux-gnu/5/cc1plus

至此,原因查明:

       我的系统是Ubuntu15.04,默认gcc、g++编译器是-5。由于之前gcc手动降级为gcc-4.9,导致gcc-4.9与g++-5不兼容。

解决方法:g++降级

       当前的版本为g++-5,需要降级为g++-4.9。

1. 安装g++-4.9

如果/usr/bin下没有g++-4.9,需要自行安装:

$sudo apt-get install g++-5
  • 1

2. g++手动降级

       你需要把usr/bin/目录下的gcc文件删除掉或者避免意外发生,可以把它命名为g++.bak,然后再删除链接文件g++

/usr/bin# cp g++ g++.bak
/usr/bin# rm g++
  • 1

       建立到g++新的软链接

#ln -s /usr/bin/g++-5 /usr/bin/g++
  • 1

       然后再g++ -v就可以看到当前版本就是5了。