¿Relación entre cc1 y gcc?

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.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım