web-dev-qa-db-fra.com

clang et clang ++ non trouvés après l'installation du paquet clang-3.5

Après avoir installé le paquet clang-3.5, taper clang ou clang++ sur la ligne de commande me donne un message indiquant dans quels packages ces programmes peuvent être trouvés. Tenter d'exécuter à nouveau l'installation de clang-3.5, apt indique qu'il est déjà installé et à la version la plus récente.

L'installation d'origine a été effectuée avec la commande:

Sudo apt-get install clang-3.5 llvm

build-essential a été installé précédemment.

Des idées sur ce qui peut être arrivé?

24
Dr. Spatula

C'est là, mais ça s'appelle toujours clang-3.5.

Vous pouvez soit l'exécuter en tant que clang-3.5 (ou clang++-3.5) ou en configurant un lien symbolique comme je l'ai fait (l'installation de clang standard ne fonctionnait pas):

Sudo ln -s /usr/bin/clang-3.5 /usr/bin/clang
Sudo ln -s /usr/bin/clang++-3.5 /usr/bin/clang++

Horrible work-around, peut-être; mais au moins ça marche pour le moment :)

29
Johan Wendin

La bonne façon d'utiliser clang comme nom par défaut cc et c++ est d'utiliser update-alternatives :

Il est possible que plusieurs programmes remplissant les mêmes fonctions ou des fonctions similaires soient installés simultanément sur un même système. Par exemple, de nombreux systèmes ont plusieurs éditeurs de texte installés à la fois. Cela donne le choix aux utilisateurs d'un système, permettant à chacun d'utiliser un éditeur différent, si nécessaire, mais il est difficile pour un programme de faire un bon choix d'éditeur à invoquer si l'utilisateur n'a pas spécifié de préférence particulière.

vous devez donc d’abord ajouter clang-3.5 ou clang++-3.5 au lieu d’exemplaires par exemple. gcc and g++:

Sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-3.5 100
Sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-3.5 100

Si, à tout moment, vous devez revenir à gcc ou g++, vous pouvez utiliser l'option --config:

Sudo update-alternatives --config c++
11
Yan Foto

Sur Ubuntu 15.04, vous pouvez également installer le paquetage clang le long du paquetage clang-x.x. Vous pouvez ensuite taper clang ++ et l'exécutable correspondant doit être trouvé.

Sudo apt-get install clang
5
tisch

En ajoutant à la réponse de Yan Foto (et juste au cas où votre but est d’obtenir un clang utilisable sans l’utiliser nécessairement comme cc), vous pouvez en fait ajouter l’ensemble des programmes en une fois en utilisant

Sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 380 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-3.8 \
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-3.8 \
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-3.8 \
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-3.8

(Notez que l'ensemble des fichiers binaires fournis avec chaque version de Clang peut différer. Par exemple, 3.6 a clang-tblgen, 3.8 non.)

Si vous répétez cette opération pour chaque version de clang que vous installez, vous pourrez basculer entre elles à l’aide d’une seule commande update-alternatives.

(Entre-temps, apparemment, il existe toujours un débat sur l'opportunité d'inclure ou non ces liens dans les paquets Ubuntu: https://bugs.launchpad.net/ubuntu/+source/llvm-3.1/+bug/99149 )

4
Latanius

Si vous avez correctement installé Clang, un autre moyen très simple de vous éviter le problème de saisir le numéro de version avec le nom du programme consiste à utiliser la fonction de saisie semi-automatique, par exemple (après avoir installé clang ++ - 3.5):

clang+[TAB][ENTER]

Il suffit donc de taper clang+, cliquer Tab et Enter. Fonctionne de la même manière avec les noms de répertoires, noms de fichiers, etc. (Cela ne vous aidera pas, toutefois, si vous avez plusieurs versions d'un programme installées.)

0
smay

Créez un fichier .bashrc dans votre répertoire personnel. Tapez cette ligne de code.

alias clang ++ = "clang ++ - 3.5"

Fermez votre terminal. Ouvrez-le à nouveau. Puis essayez à nouveau de compiler votre programme.

D'après ce que je peux dire, clang ne fonctionnera que si vous indiquez la version dans la commande "clang ++ - 3.5". Donc, j'ai juste aliasé le nom dans mon fichier .bashrc. Donc, je n'ai qu'à taper "clang ++".

En passant, j'ai téléchargé Clang 3.5, ajustez donc les conseils précédents à votre version.

0
Digipen

Ceci devrait définir les alternatives de mise à jour pour clang -4. si clang -.8 (comme sur Ubuntu 16.04) est installé:

Sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-4.0 100
Sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-4.0 100
Sudo update-alternatives --install /usr/bin/clang-apply-replacements clang-apply-replacements /usr/bin/clang-apply-replacements-4.0 100
Sudo update-alternatives --install /usr/bin/clang-check clang-check /usr/bin/clang-check-4.0 100
Sudo update-alternatives --install /usr/bin/clang-query clang-query /usr/bin/clang-query-4.0 100
Sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-4.0 100
Sudo update-alternatives --install /usr/bin/scan-build scan-build /usr/bin/scan-build-4.0 100
Sudo update-alternatives --install /usr/bin/scan-view scan-view /usr/bin/scan-view-4.0 100
0
Bl00dh0und