it-swarm.com.de

Installieren von Clang 5.0 und Verwenden von C ++ 17

Ich habe 3 Tage lang versucht, clang 5.0 auf einem Ubuntu 16.04-Rechner zu installieren. Ich habe versucht verschiedeneAnleitungen , aber nichts scheint zu funktionieren. Wenn ich versuche, einfach das Neueste aus SVN zu holen und es zu erstellen/installieren (wie detailliert hier ), führt der Versuch, ein einfaches Programm zu kompilieren, zu:

> clang++ basic.cpp
/usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found
# include <stdarg.h>

Ich habe dann versucht, das -DGCC_INSTALL_PREFIX -Flag für cmake zu setzen, bevor ich gebaut habe, aber das führt zu dem noch besseren Fehler:

> clang++ basic.cpp
fatal error: 'iostream' file not found
#include <iostream>

Die Schritte, die ich befolgt habe, sind (aus der obigen Anleitung):

> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ \
-G "Unix Makefiles" path/to/llvm
...
> make
...
> make check-clang
...
> make install-clang
...

Könnte mich jemand wie einen Idioten behandeln und Schritt für Schritt erklären, wie man Clang 5.0 installiert? Oder weisen Sie mich auf einen Leitfaden hin, dem auch einfache Dummköpfe wie ich folgen können? Wenn Sie auch erklären können, wie Sie libc ++ für C++ 17 erstellen und installieren, wäre ich Ihnen auf ewig dankbar.

Update : Anscheinend installiere ich clang nicht richtig, da dies die Ausgabe einer ausführlichen Zusammenstellung mit clang ist:

...
#include <...> search starts here:
 /usr/local/include
 /usr/include/x86_64-linux-gnu
 /usr/include

und das ist die Ausgabe für 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
...
17
Steve D

Installieren Sie clang-5 von llvm.org repositores

Zuerst sollten wir die llvm.org-Repositorys zu unseren Quellenlisten hinzufügen. Die Zeile, die wir hinzufügen sollten, lautet:

deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main

Öffne nano und füge die obige Zeile zu dieser Datei hinzu:

Sudo nano /etc/apt/sources.list.d/llvm.list

Fügen Sie den Repository-Schlüssel hinzu, damit apt die heruntergeladenen Pakete überprüfen kann.

 wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | Sudo apt-key add -

Aktualisieren Sie anschließend Ihre Listen:

Sudo apt-get update

Dann installiere clang-5:

Sudo apt-get install clang-5.0 lldb-5.0 lld-5.0

Es sollte funktionieren.

Wenn Sie eine Liste aller verfügbaren Pakete aus diesem neu hinzugefügten Repository erhalten möchten:

grep -i package: /var/lib/apt/lists/apt.llvm* | cut -f3 -d: | sort | uniq

Es gibt Ihnen eine Liste wie:

clang-5.0 
clang-5.0-doc 
clang-5.0-examples 
libclang-common-5.0-dev
...

Sie können dann installieren, was Sie wollen.


Dies kann Ihrem Kompilierungsproblem helfen

Die erwähnte Header-Datei ist in Ihrem Fehler nicht vorhanden: stdarg.h ist Teil des Pakets libstdc++-5-dev.

Ich habe dieses Paket auf meinem Computer. Wenn ich also Folgendes ausführe:

aptitude why libstdc++-5-dev

Ich werde bekommen:

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)

Die Installation des Pakets build-essential sollte also diesen Fehler von Ihnen lösen, da ich mir nicht sicher bin was hast du gemacht.

32
Ravexina