Ich habe Clang mithilfe von apt-get in Ubuntu installiert und kann damit erfolgreich C-Dateien kompilieren. Ich habe jedoch keine Ahnung, wie ich C ++ damit kompilieren soll. Was muss ich tun, um C ++ zu kompilieren?
96
Der Befehl clang
ist für C und der Befehl clang++
ist für C ++.
Für die Nachwelt akzeptiert Clang (wie GCC) den -x
Schalter, um die Sprache der Eingabedateien festzulegen, z.
$ clang -x c++ some_random_file.txt
Dieser Mailinglisten-Thread erklärt den Unterschied zwischen clang
und clang++
gut: Unterschied zwischen Clang und Clang ++
#include <iostream>
. -lstdc ++ Flag hat dieses Problem gelöst.clang.exe
ausführbare Datei zuerst erstellt und dann kopiertclang++.exe
. Es ist also dieselbe ausführbare Datei, nur zur Laufzeit überprüft sie ihren eigenen Namen, um zu unterscheiden, ob sie sich als C- oder C ++ - Compiler verhalten soll. HTH.-x c++
war sehr nützlich , da eine zu geben ,-extra-arg
zu klappern-ordentlich , es zu zwingen , eine .h - Datei als die C ++ anstelle von C zu behandelnclang++
und zu erkennen, welche Art von Dateien Sie bereitstellen. Wenn ein Projekt enthalten kann.cpp
Dateien,.ll
Dateien (llvm ir) und.o
,.a
,.so
und was keine Dateien von Drittanbieter - Bibliotheken,clang -x c++
wird nur werfen auf.Ich weiß nicht, warum es keine direkte Antwort auf das Problem gibt. Wenn Sie ein C ++ - Programm kompilieren möchten, verwenden Sie es am besten
clang++
. Zum Beispiel funktioniert das Folgende für mich:Bei korrekter Kompilierung wird die ausführbare Datei erstellt
test
, und Sie können die Datei mithilfe von ausführen./test
.Oder Sie können
clang++ test.cc
das Programm einfach zum Kompilieren verwenden. Es wird eine ausführbare Standarddatei mit dem Namen erstellta.out
. Verwenden Sie./a.out
diese Option , um die Datei auszuführen.Der gesamte Prozess ähnelt g ++, wenn Sie mit g ++ vertraut sind. In diesem Beitrag erfahren Sie, welche Warnungen in der
-Wall
Option enthalten sind. Diese Seite zeigt eine Liste der von Clang unterstützten Diagnoseflags.quelle
Ich hatte ein ähnliches Problem beim Erstellen von Clang aus dem Quellcode (aber nicht mit
sudo apt-get install
. Dies hängt möglicherweise von der Version von Ubuntu ab, die Sie ausführen).Es kann sich lohnen zu prüfen, ob
clang++
die richtigen Speicherorte Ihrer C ++ - Bibliotheken gefunden werden können:Vergleichen Sie die Ergebnisse von
g++ -v <filename.cpp>
undclang++ -v <filename.cpp>
unter "#include <...> Suche beginnt hier:".quelle
Lösung 1:
Lösung 2:
Lösung 3:
quelle