Pregunta:
Estoy tratando de instalar Ruby en mi directorio de inicio en un servidor Linux (sin acceso de root), lo que por supuesto requiere el uso de gcc
. Lo más cercano que puedo encontrar es un directorio con ese nombre que (si profundiza lo suficiente) contiene cc1
:
>: find / -iname gcc 2> /dev/null
/usr/libexec/gcc
>: tree -if /usr/libexec/gcc
/usr/libexec/gcc
/usr/libexec/gcc/x86_64-redhat-linux
/usr/libexec/gcc/x86_64-redhat-linux/4.1.1
/usr/libexec/gcc/x86_64-redhat-linux/4.1.1/cc1
/usr/libexec/gcc/x86_64-redhat-linux/4.1.2 -> 4.1.1
El hecho de que CC1 redirige a GCC en Wikipedia parece implicar algo cercano a la identidad, sin embargo, no hay otra mención de CC1 en la página de GCC además de la nota sobre la redirección, y buscar en Google no me ha dado nada útil, y mis intentos de usar cc1
en lugar de gcc
han fallado.
¿Cuál es exactamente la relación entre ellos? ¿Y me ofrece alguna esperanza de compilar Ruby en esta máquina?
Respuesta:
GCC tiene varias fases para su compilación y usa diferentes comandos internos para hacer cada fase. C, en particular, primero se procesa previamente con cpp, luego se compila en ensamblador, se ensambla en lenguaje de máquina y luego se vincula.
cc1 es el comando interno que toma archivos en lenguaje C preprocesados y los convierte en ensamblador. Es la parte real que compila C. Para C ++, hay cc1plus y otros comandos internos para diferentes lenguajes.
Hay un libro sobre Wikilibros que explica el proceso con imágenes .
Desafortunadamente, cc1 es un comando interno y solo una parte de la instalación, y si eso es todo lo que tiene, no podrá compilar cosas.