альтернативы обновления --config gcc не меняет компилятор вообще - PullRequest
0 голосов
/ 06 марта 2019

Я установил gcc-6 в ubuntu 18 (по умолчанию gcc-7), потому что для наборов инструментов cuda 9 требуется эта конкретная версия компилятора.Я использовал это, чтобы иметь альтернативы, когда использовать gcc-6 или gcc-7

sudo update-альтернативы --install / usr / bin / gcc gcc / usr / bin / gcc-7 100

- ведомый / usr / bin / g ++ g ++ / usr / bin / g ++ - 7

альтернативы обновления sudo --install / usr / bin / gcc gcc / usr / bin / gcc-650

- ведомый / usr / bin / g ++ g ++ / usr / bin / g ++ - 6

Затем я могу выбрать между ними в качестве компилятора по умолчанию

sudo update-альтернативы --config gcc

Существует два варианта альтернативного gcc (предоставив /usr/bin/gcc).

Статус приоритета пути выбора


* 0 / usr / bin / gcc-7 100 автоматический режим

1 / usr / bin / gcc-6 50 ручной режим

2 / usr / bin /gcc-7 100 ручной режим

Нажмите клавишу ввода, чтобы сохранить текущий выбор [*], или номер выбора типа: 0

Я выбираю [0], означает gcc7.Затем я проверяю версию, но все еще gcc6

gcc --version

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

Есть идеи, почему это не работает?

1 Ответ

0 голосов
/ 07 марта 2019

Я решил это. При использовании 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.

Я ожидал плохого поведения cuda с gcc-7, но все работает хорошо.

...