在Ubuntu上安装显卡驱动时报以下错误:
The CC version check failed:
The kernel was built with gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12),
but the current compiler version is cc(Ubuntu 5.5.0-12ubuntu1~16.04) 5.5.0 20171010.
在网上找了很多方法,有的是太麻烦,有的方法由于本人对内核不太熟悉,可能操作风险太大,毕竟服务器是好多人在用,总的来说,试了几个方法都还是没有解决我的问题。
先来说我的情况的解决方法:
1.找到gcc-5.4的安装路径。
我这里gcc 5.4的安装路径在/usr/local/bin/gcc 而不是/usr/bin/gcc-5
具体怎么找我也不知道,可以尝试使用指令nvcc -V ,如果显示的gcc版本是5.4,则再使用指令which nvcc,就能知道gcc 5.4的路径了。如果显示的gcc版本不是5.4,则可能需要安装gcc 5.4,然后使用指令nvcc -V ,如果显示的gcc版本是5.4,则再使用指令which nvcc,就能知道gcc 5.4的路径了。
2.将gcc链接到gcc-5.4。
zb@node3:~$ rm /usr/bin/gcc
zb@node3:~$ ln -s /usr/local/bin/gcc /usr/bin/gcc
3.重启,重新安装显卡驱动
分析说明:导致问题的原因可能是安装了不同版本的gcc冲突引起的,查看 /usr/bin/ 目录,发现有gcc-4.9和gcc-5.5等文件,但是不知道gcc-5具体是gcc 5.4还是gcc 5.5,于是重新安装了gcc 5.4(安装方法见参考文献1),使用gcc -v 指令查看gcc的版本为gcc version 5.4.0,于是重新安装显卡驱动,结果依然报“The CC version check failed”,查看了gcc compiler的指向:
zb@node3:~$ ls -al /usr/bin/cc
lrwxrwxrwx 1 root root 20 11月 27 2018 /usr/bin/cc -> /etc/alternatives/cczb@node3:~$ ls -al /etc/alternatives/cc
lrwxrwxrwx 1 root root 12 11月 27 2018 /etc/alternatives/cc -> /usr/bin/gcczb@node3:~$ ls -al /usr/bin/gcc
lrwxrwxrwx 1 root root 5 11月 27 2018 /usr/bin/gcc -> gcc-5
发现CC最终还是指向了gcc-5,出问题的原因可能就是这个gcc-5的版本可能为gcc-5.5,
查看之前安装的gcc version 5.4的位置:
zb@node3:~$ which gcc
/usr/local/bin/gcc
果然系统使用的gcc-5和gcc 5.4不是同一个,因此将gcc链接到gcc 5.4:
zb@node3:~$ rm /usr/bin/gcc
zb@node3:~$ ln -s /usr/local/bin/gcc /usr/bin/gcc
原因:可能是系统在原来gcc 5.4的基础上,由于某些原因,gcc自动升级到了gcc 5.5,但是某些配置没有更新成功,因此造成gcc 5.4 与 gcc 5.5冲突。
参考文献:
ubuntu16.04安装gcc5.4