Question

Les systèmes avec lesquels je travaille ont GCC 4.5 (expérimental) dans / usr / local / bin / gcc, ce qui s’est avéré problématique pour certains packages R. Je voudrais plutôt utiliser le système GCC dans / usr / bin / gcc.

J'ai essayé de définir CC et CXX dans les fichiers de configuration Bash (.bashrc, .bash_profile, etc.) ainsi que sur la ligne de commande, mais bien que Bash reconnaisse la modification, R ne le fait pas.

Comment puis-je obtenir que R utilise la version de GCC dans / usr / bin au lieu de celle de / usr / local / bin /?

Était-ce utile?

La solution

Ceci n’est pas très bien documenté (par exemple, j’ai échoué à le localiser dans "R Extension" ou "R Admin" pour le moment) mais Brian Ripley l’a mentionné à quelques reprises sur les listes.

En règle générale, au moment de la compilation R, les paramètres sont enregistrés et stockés dans $ R_HOME / etc / Makeconf . Une possibilité consiste à modifier ce fichier directement, mais vous ne pouvez pas avoir les privilèges root ou ne pas vouloir affecter tous les autres utilisateurs. Donc, le mieux est de créer

~/.R/Makevars

avec des entrées

CC=gcc-4.4
CXX=g++-4.4

plus les indicateurs d'optimisation, etc. que vous souhaitez définir. Cela affectera toutes les utilisations ultérieures de R CMD INSTALL ou R CMD vérifier ou ... que vous exécutez.

Les autres fichiers de $ R_HOME / etc / peuvent également être remplacés localement à partir de ~ / .R / .

Autres conseils

J'ai eu un problème très similaire.

Ce qui a fonctionné pour moi a été de définir un répertoire de projet (rstudio peut le faire pour vous), puis d’ajouter un fichier .Renviron modifiant les chemins PATH et LD_LIBRARY_PATH, afin d’inclure le répertoire dans le nouveau fichier. gcc. Dans votre cas, par exemple, .Renviron ressemblera à quelque chose comme:

LD_LIBRARY_PATH = / usr / local / bin / gcc / lib: / usr / local / bin / gcc / lib64: / usr / local / bin / gcc / libexec: autres chemins

PATH = / usr / local / bin / gcc / bin: / usr / local / bin: autres chemins

Vérifiez votre chemin pour voir si / usr / local / bin vient avant / usr / bin. Si c'est le cas, assurez-vous que / usr / bin vient en premier:

PATH=/usr/bin:${PATH}

(c'est correct si / usr / bin est dupliqué apparaît deux fois).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top