2009-10-24 29 views
13

Los sistemas con los que trabajo tienen GCC 4.5 (experimental) en/usr/local/bin/gcc que ha demostrado ser problemático para algunos paquetes R. En su lugar, me gustaría utilizar el sistema GCC en/usr/bin/gcc.Building R Paquetes usando GCC alternativo

He intentado configurar CC y CXX en los archivos de configuración Bash (.bashrc, .bash_profile etc.), así como en la línea de comandos, pero aunque Bash reconoce el cambio, R no lo hace.

¿Cómo puedo hacer que R use la versión de GCC en/usr/bin en lugar de la que está en/usr/local/bin /?

Respuesta

20

Esto no está tan bien documentado (por ejemplo, no lo ubiqué en 'R Extension' o 'R Admin' ahora mismo) pero Brian Ripley lo mencionó algunas veces en las listas.

Básicamente, en el momento de compilación R, la configuración se registra y se almacena en $ RHOME/etc/Makeconf. Una posibilidad es editar ese archivo directamente, pero es posible que no tenga privilegios de administrador o que no desee afectar a todos los demás usuarios. Por lo que el mejor puede ser la creación de

~/.R/Makevars 

con entradas

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

más Cuantas banderas optmisation etc que desea establecer. Eso afectará todos los usos posteriores de R CMD INSTALL o R CMD check o ... que ejecuta.

Otros archivos en $ RHOME/etc/pueden anularse localmente de manera similar desde ~/.R/.

+0

Con mi configuración, ciertos paquetes requieren sudo, por lo que en esos casos es necesario para modificar Makeconf. Tu solución funciona! –

+2

$ R_HOME es/usr/lib64/R/para CentOS6 – zakrapovic

+1

Para una instalación de paquete R (largeViz), tuvimos problemas incluso después de agregar la variable CXX. Además de eso, tuvimos que configurar la variable CXX11 en el archivo Makevars. Me gusta esto CXX11 = g ++ 7 – user131476

0

Revise su ruta para ver si/usr/local/bin viene antes de/usr/bin. Si lo hace, sólo asegúrese de/usr/bin es lo primero:

PATH=/usr/bin:${PATH} 

(no pasa nada si/usr/bin está duplicada aparece dos veces).

+0

no funcionó: export PATH =/usr/bin: $ {PATH} R CMD INSTALAR ... comprobando gcc .../usr/local/bin/gcc -std = gnu99 –

1

Tuve un problema muy similar.

Lo que funcionó para mí fue definir un directorio de proyecto (rstudio puede hacerlo por usted), y luego agregar un archivo .Renviron que modifica el PATH y LD_LIBRARY_PATH, para incluir el directorio con el nuevo gcc. En su caso, por ejemplo, el .Renviron quedará del siguiente modo:

LD_LIBRARY_PATH=/usr/local/bin/gcc/lib:/usr/local/bin/gcc/lib64:/usr/local/bin/gcc/libexec:otros caminos

PATH=/usr/local/bin/gcc/bin:/usr/local/bin:otros caminos