Come usare GCC 4.7 al posto di 4.6?


8

Quindi sto lavorando a un progetto e volevo usare alcune funzionalità di C11 per C. Per usare quelle funzionalità è necessario GCC 4.7, quindi sono andato a synaptic e ho cercato 4.7, e ho trovato i pacchetti gcc-4.7-base così ho installato [1].

Quindi ora che è installato gcc-4.7-base mi aspettavo di poter usare 4.7, ma no, quando lo faccio gcc --versionmostra ancora 4.6.3 ancora di più, quando provo a chiamare direttamente 4.7 (via /usr/bin/gcc-4.7) non esiste, sebbene gcc-4.6esista un eseguibile.

Come posso "attivare" GCC 4.7? Ho letto qui , fai alcune cose folli con update-alternatives, ma non funziona per me poiché l' gcc-4.7eseguibile non esiste sulla mia macchina.

Note: 1. Ho anche visto gcc-4.6-base, quindi ho pensato di disinstallarlo, ma synaptic ha tentato di rimuovere tutti i pacchetti che avevo installato e installare un runtime Java, quindi per ovvi motivi ho deciso di non rimuoverlo.

Risposte:


13

Quanto segue ha funzionato per me.

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

Fonte di riferimento


Non credo che questo risponda alla domanda, dal momento che l'OP ha detto specificamente che il update-alternativespercorso non avrebbe funzionato per loro in quanto non avevano il binario gcc-4.7 disponibile. In effetti, il tentativo di seguire le istruzioni in questa risposta dopo l'installazione di gcc-4.7-base provoca l'errore:update-alternatives: error: alternative path /usr/bin/gcc-4.7 doesn't exist.
waldyrious

0

Il gccbinario è nel gcc-X.Ypacchetto, no gcc-X.Y-base. Quest'ultima è una dipendenza di gcc-X.Yo libstdc++.

Fondamentalmente, dovresti semplicemente installare gcc-4.7e quindi chiamarlo come gcc-4.7dal tuo makefile, o usare install-alternativesper renderlo predefinito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.