update-alternatives --config gcc根本不更改编译器

时间:2019-03-06 17:20:08

标签: gcc ubuntu-18.04

我已经在ubuntu 18(默认gcc-7)上安装了gcc-6,因为cuda工具包9需要此特定版本的编译器。我在使用gcc-6或gcc-7时用它来替代

  

sudo update-alternatives --install / usr / bin / gcc gcc / usr / bin / gcc-7 100

     

-从属/ usr / bin / g ++ g ++ / usr / bin / g ++-7

     

sudo update-alternatives --install / usr / bin / gcc gcc / usr / bin / gcc-6 50

     

-从属/ usr / bin / g ++ g ++ / usr / bin / g ++-6

然后我可以在两者中选择一个作为默认编译器

  

sudo update-alternatives --config gcc

     

替代gcc有2个选择(提供/ usr / bin / gcc)。

     

选择路径优先状态

     
     

* 0 / usr / bin / gcc-7 100自动模式

     

1 / usr / bin / gcc-6 50手动模式

     

2 / usr / bin / gcc-7 100手动模式

     

按Enter保留当前选择[*],或键入选择编号:0

我正在选择[0],表示gcc7。然后我检查版本,但仍然是gcc6

  

gcc --version

     

gcc(Ubuntu 6.5.0-2ubuntu1〜18.04)6.5.0 20181026

知道为什么它不起作用吗?

1 个答案:

答案 0 :(得分:0)

我解决了。使用cuda时,要注意的是,在cuda文件夹中,您具有指向gcc的符号链接。这个链接每次都会把我交给gcc-6,而不是gcc-7。我更改了符号链接,首先将其从cuda文件夹中删除,然后创建一个直接进入gcc-7的链接。就我而言

  

sudo rm /usr/local/cuda-9.0/bin/gcc

     

sudo rm /usr/local/cuda-9.0/bin/g ++

     

sudo ln -s / usr / bin / gcc-7 /usr/local/cuda-9.0/bin/gcc

     

sudo ln -s / usr / bin / g ++-7 /usr/local/cuda-9.0/bin/g++

现在编译器是gcc-7,而不是gcc-6。

我原本以为gcc-7的cuda表现不好,但是一切都很好。