Wie verwende ich GCC 4.7 anstelle von 4.6?

8

Ich arbeite an einem Projekt und wollte einige C11-Funktionen für C verwenden. Um diese Funktionen nutzen zu können, ist GCC 4.7 erforderlich. Deshalb bin ich zu synaptic gegangen und habe 4.7 nachgeschlagen. Ich habe also die Pakete gcc-4.7-base gefunden installiert es [1].

Nun, da gcc-4.7-base installiert ist, habe ich erwartet, dass ich 4.7 verwenden kann, aber nein, wenn ich es tue gcc --version, wird 4.6.3 noch mehr angezeigt, wenn ich versuche, 4.7 (via /usr/bin/gcc-4.7) direkt aufzurufen, existiert es nicht. obwohl eine gcc-4.6ausführbare Datei existiert.

Wie "aktiviere" ich GCC 4.7? Ich habe hier gelesen , du machst ein paar verrückte Sachen damit update-alternatives, aber es funktioniert nicht für mich, da die gcc-4.7ausführbare Datei auf meinem Computer nicht existiert.

Anmerkungen: 1. Ich habe auch gcc-4.6-base gesehen, also dachte ich, ich würde es deinstallieren, aber synaptic hat versucht, jedes von mir installierte Paket zu entfernen und eine Java-Laufzeit zu installieren. Aus offensichtlichen Gründen habe ich beschlossen, es nicht zu entfernen.

Larz Conwell
quelle

Antworten:

13

Folgendes hat bei mir funktioniert.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 
sudo update-alternatives --config gcc

Quelle als Referenz

Jinseop Kim
quelle
Ich denke nicht, dass dies die Frage beantwortet, da das OP ausdrücklich sagte, dass die update-alternativesRoute für sie nicht funktionieren würde, da sie die Binärdatei gcc-4.7 nicht zur Verfügung hatten. In der Tat führt der Versuch, den Anweisungen in dieser Antwort nach der Installation von gcc-4.7-base zu folgen, zu dem Fehler:update-alternatives: error: alternative path /usr/bin/gcc-4.7 doesn't exist.
waldyrious
0

Die gccBinärdatei befindet sich im gcc-X.YPaket, nicht gcc-X.Y-base. Letzteres ist eine Abhängigkeit von entweder gcc-X.Yoder libstdc++.

Grundsätzlich sollten Sie es einfach installieren gcc-4.7und dann entweder wie gcc-4.7in Ihrem Makefile aufrufen oder verwenden install-alternatives, um es zum Standard zu machen.

Dmitry Grigoryev
quelle