Wie installiere ich g ++ 4.7.2 & c ++ 11 unter CentOS 5.x?

8

Ich versuche den neuesten Stall zu installieren g++und c++11. Mein Gastgeber hat es geschafft yum installund dachte, dass es das Neueste ist, aber es ist nicht so, und sie sagen jetzt, dass dies über ihre Unterstützung hinausgeht.

Ich habe mir überall angesehen, wie das geht, und ich kann nichts zum Laufen bringen, oder ich habe keine Ahnung, was die vorgeschlagene Lösung sagt.

Was ist der einfachste Weg, um g++4.7.2 und c++11unter CentOS 5.9 zu installieren ?

Jasonwryan
quelle
2
Ich sehe darin nichts, was (in meinen sehr unerfahrenen Augen) eine neue C ++ - Funktion erfordert. Das Installieren zusätzlicher Software (von der Quelle, nicht weniger) ist nicht leichtfertig (wenn Sie CentOS verwenden, handelt es sich vermutlich um eine Unternehmensanwendung). Auf keinen Fall für jemanden mit stundenlanger Linux-Erfahrung. Überdenken Sie Ihre Optionen sorgfältig.
vonbrand
1
Was erfordert Lambda so eindringlich? Vielleicht ist es am besten, das neueste Fedora zu installieren, wobei gcc-4.7.2 der Standard-Compiler ist, der von der Distribution verwaltet wird ?
vonbrand
2
Ich bin kein C ++ - Experte, aber "Sortieren nach N-tem int in einem Vektor von int" erfordert einen Vergleich zwischen Vektoren, und das ist keine exotische Anforderung, nur um mit dem neuesten C ++ erfüllt zu werden. Sicher, es könnte einfacher sein, aber wenn etwas so Einfaches von den ersten Versionen von STL an nicht möglich wäre, wäre ich völlig verblüfft. Einen C ++ - Experten an Bord holen?
vonbrand
Haben Sie die BOOST-Bibliotheken in Betracht gezogen? Ein großer Prozentsatz von C ++ 11 kam von dort ...
Aaron D. Marasco
c ++ 11 ist kein Compiler, sondern ein Standard. siehe meine Antwort.
PersianGulf

Antworten:

9

Von dieser Antwort auf "Installieren Sie gcc 4.7 unter CentOS [6.x]" ist der einfachste Weg, g++4.7 und die erforderlichen Tools und Bibliotheken für CentOS 5.x zu erhalten, über das devtoolsPaket:

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools/devtools.repo 
yum --enablerepo=testing-devtools-6 install devtoolset-1.0

Da Sie laufen g++manuell (im Gegensatz zu durch entgegengesetzt make), werden Sie benötigen , um Ihre aktualisieren $PATHVariable so wird Ihre Shell die neue Nutzung gcc, g++usw. Binärdateien:

export PATH=/opt/centos/devtoolset-1.0/root/usr/bin/:$PATH

Zu diesem Zeitpunkt sollte Ihre g++Version 4.7.0 sein

$ g++ --version
g++ (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Beachten Sie, dass die Installation gccund die damit verbundenen Tools und Bibliotheken auf diese Weise vom Repository-Betreuer abhängig sind, um die Pakete auf dem neuesten Stand zu halten.

Wenn Sie daran interessiert sind, Ihre gccDaten auf dem neuesten Stand zu halten, sollten Sie in Betracht ziehen , gccaus dem Quellcode zu erstellen .

Außerdem kann das Kompilieren von Programmen mit einer anderen Version von g++und libstdc++als auf Ihrem System installiert alle Arten von Spaß verursachen , deren Bewältigung den Rahmen dieser Antwort sprengt. Es kann sich lohnen, zu einer Linux-Distribution zu wechseln, die Unterstützung für Ihre Aktivitäten bietet.

Reed Kraft-Murphy
quelle
Ich habe die Anweisungen aktualisiert - das Paket, das Sie yuminstallieren möchten , ist devtoolset-1.0, da es andere erforderliche Entwicklungstools enthält. und Sie möchten Ihre $PATHVariable aktualisieren , da Sie g++über die Befehlszeile starten .
Reed Kraft-Murphy
Wenn ich eine neue Konsole erstelle, befindet sich gcc immer noch in der alten Version. Wie mache ich die neue Version zur Standardversion?
BT
1
Um dies dauerhaft export PATH..festzulegen , müssen Sie die Zeile in Ihrem ~ / .profile oder ~. / Profile_bash oder einem gleichwertigen Element hinzufügen: superuser.com/questions/809250/…
BT
Zeigt danach immer noch "g ++ (GCC) 4.1.2" :-(
IllidanS4 will Monica
1

Paketmanager sind großartig, enthalten aber (verständlicherweise) im Allgemeinen nicht die neueste Version der Software. CentOS ist eine Distribution, die sich insbesondere auf Server konzentriert und Stabilität (und umfangreiche Tests) gegenüber den neuesten und glänzendsten bevorzugt. Hier sind Ihre Lösungen:

Distribution wechseln

Andere Distributionen wie Arch Linux, Sabayon Linux oder Debian "Sid" enthalten die neuesten Versionen viel schneller. Sie können die Distributionen ändern.

Bauen Sie es selbst

Wenn Sie mit CentOS nicht weiterkommen, ist es am besten , gcc aus dem Quellcode zu erstellen . Es bedeutet, den Quellcode abzurufen, sicherzustellen, dass die Abhängigkeiten bereits auf Ihrem System vorhanden sind (wenn nicht, können Sie sie sicher vom CentOS-Paketmanager abrufen), die Quelle in eine ausführbare Binärdatei zu kompilieren und die ausführbare Datei auf Ihrem System zu installieren System .

Dies ist sicher nicht der einfachste Weg, aber Sie werden dabei viel über Unix lernen. Lesen Sie das Dokument einige Male, um sicherzustellen, dass Sie alles erhalten, und stellen Sie Fragen, wenn etwas Bestimmtes unklar ist.

Sei geduldig

Irgendwann wird diese Version (oder eine neuere Version) von gcc / g ++ in den Paketmanager aufgenommen. Wenn Sie warten (bis zu mehreren Monaten, ich bin mit dem CentOS-Veröffentlichungszyklus nicht sehr vertraut), erhalten Sie letztendlich das, was Sie wollen.

Rahmu
quelle
1

Hm, ich bin zu neu, um Reeds Antwort zu kommentieren. Es hat gut für mich funktioniert. Ich wollte nur beachten (vielleicht ist das etwas für Reed?), Dass ich mit einer etwas anderen Befehlszeile installieren musste:

yum --enablerepo=testing-devtools-5 install devtoolset-1.0

(Reeds Antwort hatte --enablerepo=testing-devtools-6, was nicht funktioniert hat.)

Sean Suchter
quelle