# Re-changer de compilateur clang->gcc



## angelbj (20 Octobre 2015)

Bonjour,

J'ai récemment modifié mon compilateur par défaut par "clang" (accidentellement en faisant des recherches pour executer du code parallèle avec openmp) et je souhaite re-introduire gcc comme compilateur, j'ai alors tenté de le re-installer par homebrew mais quand je tape juste "gcc" dans le terminal, je reçois ça sur la sortie standard : "
clang: error: no input files". A priori clang est toujours par défaut. Si quelqu'un a une solution je suis preneur


----------



## bompi (20 Octobre 2015)

Homebrew t'a installé GCC dans un autre dossier (je suppose dans /usr/local/bin ?). Il faut jouer sur les variables d'environnement pour que ce GCC-là soit pris comme compilateur par défaut dans les shells.

Par ailleurs, il me semble que Apple n'utilise plus GCC. En tout cas, une installation par défaut des outils de développement en mode texte (CLI) ne propose que _clang_ avec un petit habillage GCC par-dessus.


----------



## angelbj (20 Octobre 2015)

Quand je fait gcc -v, ça m'indique le gcc installé par Xcode il me semble (version 4.2.1) hors j'ai installé la version 5.2 avec brew (je suis pas sur de l'emplacement ...).

Sinon j'ai trouvé ça en surfant (ne pas prendre en compte le numéro de version) :
export LD_LIBRARY_PATH=~/gcc-4.5.0/lib64
export PATH=~/gcc-4.5.0/bin:$PATH

Je sais pas si je devrais essayer, vu que je ne suis pas encore assez familier avec ce genre de manipulation plus ou moins lié au système mac os.




EDIT: 
Je viens de regarder dans /usr/local/bin et il y a bien un gcc mais nommé gcc-5, et c'est bien celui installé par homebrew :

Using built-in specs.

COLLECT_GCC=gcc-5

COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/5.2.0/libexec/gcc/x86_64-apple-darwin15.0.0/5.2.0/lto-wrapper

Target: x86_64-apple-darwin15.0.0

Configured with: ../configure --build=x86_64-apple-darwin15.0.0 --prefix=/usr/local/Cellar/gcc/5.2.0 --libdir=/usr/local/Cellar/gcc/5.2.0/lib/gcc/5 --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-5 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl --with-system-zlib --enable-libstdcxx-time=yes --enable-stage1-checking --enable-checking=release --enable-lto --with-build-config=bootstrap-debug --disable-werror --with-pkgversion='Homebrew gcc 5.2.0' --with-bugurl=https://github.com/Homebrew/homebrew/issues --enable-plugin --disable-nls --enable-multilib --with-native-system-header-dir=/usr/include --with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk

Thread model: posix

gcc version 5.2.0 (Homebrew gcc 5.2.0)


----------



## bompi (20 Octobre 2015)

Donc en tapant *gcc-5* c'est le compilateur voulu qui vient.

Si tes scripts utilisent *gcc* un peu partout, sans l'avoir variabilisé, tu peux en créer un lien symbolique nommé *gcc* dans */usr/local/bin*.

Mais pour l'utiliser il te faudra soit spécifier son chemin _in extenso_ soit faire en sorte que dans la variabled'environnement *PATH*, */usr/local/bin* soit avant */usr/bin*.


----------



## angelbj (22 Octobre 2015)

Merci bompi, j'ai créée un lien symbolique dans _/usr/local/bin_ et ça m'a l'air de bien fonctionner. 
Par contre juste à titre informatif je me demande comment ordonnancer les chemins (_/usr/local/bin_ et _/usr/bin_) dans la variable d'environnement (j'ai juste trouvé comment insérer dedans).


----------



## bompi (23 Octobre 2015)

Il faut modifier la variable PATH. 
Tu fais ça dans un des fichiers utilisés
pour initialiser les shells : "~/.bashrc", "~/.bash_profile"
Soit tu le fait brutalement en lui donnant les chemins par défaut dans l'ordre qui te convient soit subtilement en modifiant l'ordre de ses chemins. 
Je te conseille de modifier les fichiers d'initialisation de ton compte plutôt que les fichiers généraux.


----------

