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?
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?
Antworten:
Für die Nachwelt akzeptiert Clang (wie GCC) den -xSchalter, um die Sprache der Eingabedateien festzulegen, z.
$ clang -x c++ some_random_file.txt
Dieser Mailinglisten-Thread erklärt den Unterschied zwischen clangund clang++gut: Unterschied zwischen Clang und Clang ++
clang.exeausführbare Datei zuerst erstellt und dann kopiert clang++.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-argzu klappern-ordentlich , es zu zwingen , eine .h - Datei als die C ++ anstelle von C zu behandeln
clang++und zu erkennen, welche Art von Dateien Sie bereitstellen. Wenn ein Projekt enthalten kann .cppDateien, .llDateien (llvm ir) und .o, .a, .sound 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:
clang++ -Wall -std=c++11 test.cc -o test
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.ccdas Programm einfach zum Kompilieren verwenden. Es wird eine ausführbare Standarddatei mit dem Namen erstellt a.out. Verwenden Sie ./a.outdiese 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 -WallOption enthalten sind. Diese Seite zeigt eine Liste der von Clang unterstützten Diagnoseflags.
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>und clang++ -v <filename.cpp>unter "#include <...> Suche beginnt hier:".
#include <iostream>. -lstdc ++ Flag hat dieses Problem gelöst.