He estado usando con éxito gcc en Linux Mint 12. Ahora recibo un error. Recientemente he estado haciendo algunas compilaciones .so e instalé Clang no hace mucho, pero he compilado con éxito desde ambos eventos, así que no estoy seguro de qué ha cambiado. Usé el Administrador de software GUI para eliminar y luego instalar gcc nuevamente, pero los resultados son los mismos:
~/code/c/ut: which gcc
/usr/bin/gcc
~/code/c/ut: gcc -std=c99 -Wall -Wextra -g -c object.c
gcc: error trying to exec 'cc1': execvp: No such file or directory

Respuestas:
Explicación
El mensaje de error nos dijo que
cc1no se encontró la dependencia del tiempo de compilación (en este caso lo es ), así que todo lo que necesitamos es instalar el paquete apropiado en el sistema (usando el administrador de paquetes // de las fuentes // de otra manera)Que es
cc1:tomado de esta respuesta por Alan Shutko .
Solución para: Ubuntu / Linux Mint
Solución para: entorno Docker-alpino
Si se encuentra en un entorno docker-alpine , instale el paquete build-base agregando esto a su
Dockerfile:Mejor nombre de paquete proporcionado por Pablo Castellano . Más detalles aquí .
Si necesita más paquetes para fines de construcción, considere agregar el paquete alpine-sdk :
Tomado de github
Solución para: CentOS / Fedora
Esta respuesta contiene instrucciones para CentOS y Fedora Linux
Solución para: Amazon Linux
Tomado de este comentario por CoderChris
También puede intentar instalar las dependencias perdidas con esto ( aunque se dice que no resuelve el problema ):
Tomado de esta respuesta
fuente
En CentOS o Fedora
fuente
En debian / ubuntu solucioné este problema reinstalando
build-essential:fuente
Esto se debe a que
gccllama a muchos otros ejecutables para completar el procesamiento de la entrada ycc1no está en la ruta incluida.En tipo de concha
whereis cc1. Sicc1se encuentra, es mejor seguir adelante y crear un enlace suave en el directorio degcc; de lo contrario,cc1no está instalado y debe instalar gcc-c ++ usando el administrador de paquetes.fuente
ln -s cc cc1Dado que esto aparece como el primer resultado en Google, solo quería documentar mi experiencia con Amazon Linux. La instalación
gcc-c++.noarchsolucionó el problema:sudo yum install gcc-c++.noarchAlgunas personas también informaron de esta alternativa como solución:
sudo yum install gcc72-c++fuente
.noarchya está instalado.Hoy me encontré con un problema similar: un compañero de trabajo no podía crear su software, pero yo podía hacerlo. Cuando corrió
gccno pudo encontrarcc1.Su ruta ejecutable parecía razonable, pero el hecho de que no pudiera replicar fácilmente la falla sugirió algo en su entorno como la causa.
Finalmente encontramos
GCC_EXEC_PREFIXdefinido en su entorno cuál era el culpable y engañosogccen la búsquedacc1. Esto era parte de sus scripts de inicio de shell y estaba destinado a solucionar una limitación en un sistema SPARC / Solaris que ya no está en uso. El problema se resolvió al no configurar esta variable de entorno.http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
fuente
Solucioné este problema instalando explícitamente g ++:
Se encontró un problema en Ubuntu 12.04 al instalar pandas. (Gracias perilbrain.)
fuente
yum install gcc-c++hizo la solución.fuente
Asegúrese de que su
GCC_EXEC_PREFIX(env)no se exporta yPATHse exporta a la cadena de herramientas correcta.fuente
Experimenté esto poco después de compilar e instalar un nuevo y brillante GCC, versión 8.1, en RHEL 7. Al final, terminó siendo un problema de permisos; mi umask raíz fue el culpable. Finalmente encontré
cc1escondiéndome en/usr/local/libexec:Sin embargo, los permisos en los directorios que llevan allí no permitían mi cuenta de usuario estándar:
Un rápido recursivo
chmodpara agregar permisos de lectura / ejecución mundial lo solucionó de inmediato:¡Y ahora
gccpuedo encontrarlocc1cuando le pido que compile algo!fuente
Este también podría ser el mensaje de error que se muestra si intenta ejecutar binarios gcc de 32 bits en un sistema operativo de 64 bits y falta glibc de 32 bits. Según este archivo Léame : "Para sistemas de 64 bits, se requieren libc y libncurses de 32 bits para ejecutar las herramientas". En este caso, no hay ningún problema con la ruta y cc1 se encuentra realmente, pero se informa que falta como sin glibc de 32 bits.
fuente
Lo que me ayudó fue usar
llvm-gccen su lugar:fuente
Solo para documentar mi problema con este problema, aunque parece ser un ejemplo específico de otras respuestas; como relativamente novato, siento que esto podría ayudar a otros.
Solución:
Agregué '/ usr / bin' al comienzo de PATH para una sola sesión de uso
PATH='/usr/path/:$PATH'y todo comenzó a funcionar bien.Usé gedit para actualizar el PATH de forma permanente, después de asegurarme de que no rompería mis cadenas de herramientas habituales.
Explicación:
Tengo varias cadenas de herramientas instaladas en Ubuntu 14.04LTS y utilizo solo un par de forma regular. Cuando intenté usar gcc desde la línea de comando, el OP me describió el problema. '/ usr / bin' está en la RUTA pero está detrás de las otras ubicaciones de la cadena de herramientas. Resulta que el cc1 para esas otras cadenas de herramientas es incompatible con gcc.
fuente
Solo para complementar la respuesta de @ maxkoryukov con respecto a Alpine.
El equivalente a Debian
build-essentialen Alpine esbuild-base. De hecho, lo anterioralpine-sdkdepende debuild-base.fuente
Puede solucionarlo ejecutando esto: En Fedora:
fuente
Experimenté este problema en una instalación razonablemente nueva de Fedora 27. Probé todas las otras sugerencias o sus equivalentes; la instalación de los distintos paquetes decía "ya instalado" o instaló algo nuevo que no ayudó.
Fijo con
fuente
En Scientific Linux 6 (similar a CentOS 6-- SL ahora se reemplaza por CentOS, AIUI), tuve que usar
/usr/sbin/prelink -av -mRlo que encontré sugerido en https://stelfox.net/blog/2014/08/dependency-prelink-issues/Hasta que hice eso, recibí un error cc1
gcc: error trying to exec 'cc1': execvp: No such file or directorycuando intenté compilar, y gcc --version reportó 4.2.2 en lugar de 4.4.7, a pesar de que yum reportó esa versión.Puede o no estar relacionado, pero el sistema se había quedado sin espacio en / var
fuente
Está en este paquete (Ubuntu 19.04):
fuente
g++está bien. O mejor,build-essentialtambién incluye algunas bibliotecas.En mi raro caso fue
color wrapperquien echó a perdergcc. Resuelto al deshabilitar lacwexclusión de su directorio/usr/libexec/cwdePATHla variable de entorno.fuente
¿Por qué pasó esto? Cuando instala una copia nueva de linux, el compilador gcc viene empaquetado con él. Solo contiene los archivos y binarios que se utilizan para ejecutar Linux (para ahorrar espacio y tiempo, obviamente).
¿Cómo resolver este error? Todo lo que necesita es actualizar sus paquetes a través del administrador de paquetes y reinstalar los paquetes esenciales de compilación. Los comandos pueden ser diferentes en diferentes núcleos.
fuente