2015-01-06 17 views
7

Ho cercato di far sì che Mac OSX Yosemite usasse gcc invece di clang quando viene richiamato cc, ma non importa quello che faccio, si rifiuta di giocare. Ho già provato a cambiare il mio bash_profile/bashrc e anche ricollegare il link simbolico, ma senza alcun risultato - ogni volta che invoco "cc" è ancora clang che funziona. Sto provando a forzarlo ad essere gcc invece (e no, solo chiamare gcc non è un'opzione).Impostare cc su gcc anziché clang su OSX Yosemite

Ho chiesto in precedenza una domanda simile (Make gcc default c compiler on Yosemite/disable clang).

+1

Sono sempre interessato quando le persone dicono di volere usare gcc su clang: avete motivi ideologici o qualche altro obiettivo in mente? –

+1

No, ho solo bisogno di eseguire un software molto arcano che presuppone gcc ma non può funzionare con clang. – Hendrik

+3

In XCode 6, 'gcc' è un collegamento a' clang', non il vero 'gcc'. Dovresti ottenere una build personalizzata di GCC in qualche forma o forma, e quindi modificare i collegamenti (e rischiare di averli modificati se aggiorni XCode e installi di nuovo gli strumenti della riga di comando). –

risposta

6

Non dovresti farlo. Molti strumenti si basano sui binari di installazione per indicare cosa dovrebbero. Un'altra opzione è impostare la variabile di ambiente CC su gcc e richiamare la compilazione con $CC ... anziché cc ...; questa variabile d'ambiente verrà rilevata anche durante la creazione di pacchetti tramite configure (autotools) o cmake.

Questo è anche un approccio compatibile con le versioni di gcc MacPorts (come la più aggiornata gcc-4.9.2), che può essere impostato con: sudo port select --set gcc mp-gcc49

+0

Ho provato a impostare le variabili di ambiente e non ha funzionato. Questo non è neanche il caso in cui sto chiamando cc o gcc manualmente, o ho un vero controllo su cui è chiamato, quindi è per questo che sto cercando di ottenere cc per eseguire semplicemente gcc. – Hendrik

+0

@Hendrik - Suppongo che si possa provare a impostare un alias, ad es., Alias ​​cc = "gcc" '(bash) o' alias cc 'gcc'' ([t] csh). Ma anche questo è [problematico] (http://unix.stackexchange.com/questions/1496/why-doesnt-my-bash-script-recognize-aliases). –

+0

Il software rispetta almeno 'PATH'? Potresti provare a dargli un ambiente che conosce solo gcc (e non clang) – sapi

9

Né OS X né Xcode è dotato di reale GCC. Per compatibilità con script che presuppongono che il compilatore sia chiamato "gcc", ha file eseguibili con quel nome, ma sono tutti i fronti per Clang. Nessuna quantità di collegamenti simbolici, l'impostazione di variabili di ambiente o l'impostazione di alias consentiranno a tali eseguibili di eseguire GCC reali.

Se si desidera GCC, è necessario installarlo. Puoi farlo usando uno dei gestori di pacchetti, come MacPorts (quello con cui ho familiarità). Sono sicuro che potresti anche usare Homebrew.

Non modificare nulla in/usr/bin. Se lo hai già fatto, dovresti ripristinare ciò che hai cambiato, se possibile.

I gestori di pacchetti ben educati non modificheranno la directory. Dovrebbero installarsi in una directory separata come/opt/local/bin,/usr/local/bin, o simili. In tal caso, si vorrà modificare il proprio PATH per mettere quelle directory prima di/usr/bin.

Problemi correlati