Aktualisieren von Apple g ++ / gcc

8

Was ist der Unterschied zwischen Apple gcc und GNU gcc? Ist Apple gcc eine Obermenge der Standard-Version?

Die g ++ Versionsinformation in meinem OSX zeigt:

%Vor%

Einige der neuesten Funktionen von C ++ 11 sind in gcc 4.3 / 4.4 nach dies . Gibt es eine neuere Version von Apple gcc, auf die ich upgraden kann? Wenn ja, wie kann ich es tun? Ich habe Xcode 4.1

    
devnull 02.10.2011, 00:56
quelle

4 Antworten

6

Nun, im ersten Teil verwendet Apple in diesem Fall das LLVM-Backend für g ++ als Standard g ++. Apple installiert auch die wunderbar benannten clang und clang ++ Front-Ends für LLVM. Es gibt jedoch nichts, was Sie davon abhält, neuere GCC-Niederlassungen zu installieren. MacPorts hat Pakete für alles bis zu 4.6. Wenn Sie in der GCC-Manpage nach "APPLE ONLY" suchen, können Sie sehen, was außerhalb von Apple-Zweigstellen nicht verfügbar ist.

    
mkb 02.10.2011, 01:10
quelle
6

Neben den bereits erwähnten llvm-gcc und clang gibt es auch einen von Apple bereitgestellten gcc-4.2 (ohne LLVM-Backend) bei /usr/bin/gcc-4.2 in Xcode 4.1. Überschreibe jedoch nicht die von Apple bereitgestellten Versionen in /usr/bin . Alle drei unterstützen eine Obermenge von Funktionen wie Multi-Arch-Unterstützung und Multi-Abi-Unterstützung, die in den GNU-Distributionen von Vanilla nicht zu finden ist. Viele Pakete von Drittanbietern hängen von diesen Funktionen in OS X ab. Wenn Sie etwas über MacPorts oder von der Quelle installieren auf einem anderen Pfad installiert werden, wie /opt/local/bin oder /usr/local/bin . Verwenden Sie PATHs oder Umgebungsvariablen, um den von Ihnen verwendeten Compiler zu verwalten.

    
Ned Deily 02.10.2011 01:18
quelle
2

Sie können Macport verwenden, um neuere Versionen zu installieren. Sie können es hier herunterladen. Sobald Sie gcc mit macport installiert haben, können Sie es mit xcode verwenden, indem Sie Ihrem Build eine benutzerdefinierte Einstellung hinzufügen:

%Vor%     
blotus 02.10.2011 01:22
quelle
1

Eine Sache, die im GCC-Zweig von Apple definitiv vorhanden ist, aber nicht in GNU GCC, sind Blöcke .

    
Johannes Schaub - litb 02.10.2011 14:09
quelle

Tags und Links