2017-01-03 3 views
0

Ich versuche herauszufinden, was die Unterschiede zwischen "--version" -Ausgabe sind, wenn ich die Versionen von gcc/g ++ und clang/clang ++ überprüfe, von denen ich verstehe, dass sie nur Links zueinander sein sollten. Darüber hinaus ist es mir unklar, ob es eine Möglichkeit gibt, zu aktualisieren, was ich gegeben habe, dass ich gerade auf Mac OSX 10.9 gesperrt bin. Es gibt ein bisschen zu viel, um in die Frage zu passen, aber kurz gesagt, ich versuche, mich auf das Spielen mit SDL vorzubereiten. Es ist am besten, dass ich die Konsolenausgabe posten und kommentiere, während ich weitermache. Ich denke, dass ich ein paar Missverständnisse zu sortieren habe; Ich auf ähnlichen Seiten auf Stack-Überlauf aussehen, aber keiner der Diskussionen ganz beantwortet meine FragenAuf Mac 10.9 Mavericks ist die Clang-Konfiguration anders als die gcc Link-Konfiguration?

$ gcc --version 
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) 

in Ordnung, so ist dies eine ziemlich alte Version, ist es eine sichere Art und Weise alles zu aktualisieren, oder ist ich System verschlossen? Ich erinnere mich, Installation Kommandozeilen-Tool und die neueste Version von Xcode, 6.2, verfügbar auf meinem System

Target: x86_64-apple-darwin13.4.0 
Thread model: posix 


$ g++ --version 
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 

4.2.1? Ich habe Xcode 6.2 installiert. Soll ich etwas neu aufbauen?

Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) 
Target: x86_64-apple-darwin13.4.0 
Thread model: posix 

$ clang --version 
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) 
Target: x86_64-apple-darwin13.4.0 
Thread model: posix 

$ clang++ --version 
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) 
Target: x86_64-apple-darwin13.4.0 
Thread model: posix 

Die Klirren Ausdrucke sagen Sie mir nichts über die Xcode-Version, so dass ich bin mir nicht sicher, ob es einen Unterschied hier ist.

Kurz gesagt, soll ich etwas aktualisieren oder installieren, so habe ich eine neuere Reihe von Compilern, oder bin ich eingestellt? Was ist der wirkliche Unterschied zwischen den obigen Informationen gcc/g ++ und clang/clang ++? Schließlich, kann ich überhaupt aktualisieren, und wenn ja, auf welche Weise, und kann ich dies ohne negative Folgen tun?

Entschuldigung im Voraus, wenn die Frage zu allgemein/wolkig ist. Ich möchte nur sicherstellen, dass ich diese Nachrichten richtig verstehe und weiß, wie ich vorgehen soll. Danke.

+0

http://stackoverflow.com/questions/8674546/how-to-update-llvm-clang-on-mac-osx beantwortet einen Teil meiner Frage: Es ist am besten, mit den gelieferten Versionen der Compiler zu bleiben, aber Das hilft mir immer noch nicht herauszufinden, ob ich Homebrew zum Beispiel verwenden kann, um neuere Versionen zu installieren (wie man damit fortfährt) und wie man sie während des Kompilierens spezifiziert. hmmm – synchronizer

Antwort

1
  1. Auf einem modernen Mac-System, gcc ist ein Alias ​​für clang und g++ ist ein Alias ​​für clang++.

  2. Sie sind auch Komponenten von Xcode (oder den Xcode-Befehlszeilentools, wenn Sie diese installiert haben). Die installierte Version von clang hängt von der Version von Xcode ab, die Sie installiert haben, ist aber nicht dasselbe.

  3. Die "4.2.1", die Sie betrachten, ist die Version der C++ - Header. Es wird dich nur verwirren. Ignoriere es.

Wenn Sie eine neuere Version des Compilers wollen, benötigen Sie eine neuere Version von Xcode zu installieren, und das zu tun, benötigen Sie eine neuere Version von macOS zu installieren.

+0

Danke für die klare und prägnante Antwort. Ich war mir der Aliase bewusst, wusste aber nicht genau, ob ich mit den Compilerversionen, die ich hatte, festgefahren war. Ich nehme an, dass ich noch einen anderen Grund habe, Linux zu benutzen! (Ich aktualisiere den Mac Computer nicht.) – synchronizer

Verwandte Themen