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

问题描述:

       安装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了。

猜你喜欢

转载自blog.csdn.net/tiryzheng/article/details/79535529