Cela fait 3 jours que j'essaie d'installer Clang 5.0 sur une machine Ubuntu 16.04. J'ai essayé diversguides , mais rien ne semble fonctionner. Lorsque j'essaie simplement de récupérer les dernières informations de SVN et de construire/installer (comme détaillé ici ), essayer de compiler un programme simple conduit à:
> clang++ basic.cpp
/usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found
# include <stdarg.h>
J'ai ensuite essayé de définir l'indicateur -DGCC_INSTALL_PREFIX
pour cmake
avant de le construire, mais cela conduit à l'erreur encore meilleure:
> clang++ basic.cpp
fatal error: 'iostream' file not found
#include <iostream>
Les étapes que j'ai suivies sont (à partir du guide ci-dessus):
> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ \
-G "Unix Makefiles" path/to/llvm
...
> make
...
> make check-clang
...
> make install-clang
...
Quelqu'un pourrait-il me traiter comme un idiot et expliquer, étape par étape, comment installer Clang 5.0? Ou me diriger vers un guide que même des imbéciles de base comme moi peuvent suivre? Si vous pouvez également expliquer comment compiler et installer libc ++ pour C++ 17, je vous en serai éternellement reconnaissant.
Update : Il semble que je n'installe pas correctement clang, car il s'agit du résultat d'une compilation verbeuse avec clang:
...
#include <...> search starts here:
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
et voici la sortie pour g ++:
#include <...> search starts here:
/usr/include/c++/5
/usr/include/x86_64-linux-gnu/c++/5
/usr/include/c++/5/backward
/usr/lib/gcc/x86_64-linux-gnu/5/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
...
Premièrement, nous devrions ajouter les dépôts llvm.org à nos listes de sources, la ligne à ajouter est la suivante:
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main
Ouvrez nano et ajoutez la ligne ci-dessus à ce fichier:
Sudo nano /etc/apt/sources.list.d/llvm.list
Ajoutez la clé du référentiel, cela permettra à apt
de vérifier les packages téléchargés.
wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | Sudo apt-key add -
Après cela, mettez à jour vos listes:
Sudo apt-get update
Ensuite, installez Clang-5:
Sudo apt-get install clang-5.0 lldb-5.0 lld-5.0
Ça devrait marcher.
Si vous souhaitez obtenir une liste de tous les packages disponibles à partir de ce référentiel récemment ajouté:
grep -i package: /var/lib/apt/lists/apt.llvm* | cut -f3 -d: | sort | uniq
Cela vous donnera une liste comme:
clang-5.0
clang-5.0-doc
clang-5.0-examples
libclang-common-5.0-dev
...
Vous pouvez ensuite installer ce que vous voulez.
Le fichier d'en-tête mentionné n'existe pas dans votre erreur: stdarg.h
fait partie du package libstdc++-5-dev
.
J'ai ce paquet sur ma machine, donc si je lance:
aptitude why libstdc++-5-dev
J'aurai:
i build-essential Depends g++ (>= 4:5.2)
i A g++ Depends g++-5 (>= 5.3.1-3~)
i A g++-5 Depends libstdc++-5-dev (= 5.4.0-6ubuntu1~16.04.4)
Il semble donc que l’installation du paquet build-essential
devrait résoudre le problème this , car je ne suis pas sûr de ce que vous avez terminé.